X-Git-Url: https://www.tinc-vpn.org/git/browse?a=blobdiff_plain;f=test%2Fscripts.test;h=a76356aeae3498a1f29dd0ecc9bc2154782022d3;hb=743d3cefc244e669c9265da8355e8722d990fc8e;hp=7889e1da7d7b6dd0adfded616a5bca36ccaee482;hpb=9ca716d6270335cf44455fc1667a1647c19410ef;p=tinc diff --git a/test/scripts.test b/test/scripts.test index 7889e1da..a76356ae 100755 --- a/test/scripts.test +++ b/test/scripts.test @@ -1,131 +1,132 @@ #!/bin/sh -. "${0%/*}/testlib.sh" +. ./testlib.sh -echo Initializing node... +echo [STEP] Initializing server node -# Initialize server node +port_foo=30040 +port_bar=30041 -$tinc $c1 <$d1/$script << EOF -#!/bin/sh -echo $script \$NETNAME,\$NAME,\$DEVICE,\$IFACE,\$NODE,\$REMOTEADDRESS,\$REMOTEPORT,\$SUBNET,\$WEIGHT,\$INVITATION_FILE,\$INVITATION_URL,\$DEBUG >>$OUT +echo [STEP] Setting up scripts + +OUT=$DIR_FOO/scripts.out +rm -f "$OUT" + +for script in \ + tinc-up tinc-down \ + host-up host-down \ + subnet-up subnet-down \ + hosts/foo-up hosts/foo-down \ + hosts/bar-up hosts/bar-down \ + invitation-created invitation-accepted; do + + commands=$( + cat <>'$OUT' "$script" "$TINC_SCRIPT_VARS" EOF -chmod u+x $d1/$script + ) -cat >$d1/$script.cmd << EOF -echo $script %NETNAME%,%NAME%,%DEVICE%,%IFACE%,%NODE%,%REMOTEADDRESS%,%REMOTEPORT%,%SUBNET%,%WEIGHT%,%INVITATION_FILE%,%INVITATION_URL%,%DEBUG% >>$OUT -EOF + create_script foo "$script" "$commands" done -# Start server node - -echo Starting server node... - -$tinc $c1 -n netname start $r1 +echo [STEP] Starting server node -echo foo-started >>$OUT +start_tinc foo -n netname +wait_script foo subnet-up 2 +echo foo-started >>"$OUT" -# Invite client node +echo [STEP] Inviting client node -echo Inviting client node... +url=$(tinc foo -n netname2 invite bar) +file=$(basename "$(find "$DIR_FOO/invitations" -type f ! -name ed25519_key.priv)") -url=`$tinc $c1 -n netname2 invite bar | tr -d '\r'` -file=`cd $d1/invitations; ls | grep -v ed25519_key.priv` -echo bar-invited >>$OUT +if is_windows; then + file=$(cygpath --unix -- "$file") +fi -echo Joining client node... +wait_script foo invitation-created +echo bar-invited >>"$OUT" -$tinc $c2 -n netname3 join $url -echo bar-joined >>$OUT +echo [STEP] Joining client node -# Start and stop client node +tinc bar -n netname3 join "$url" +wait_script foo invitation-accepted +echo bar-joined >>"$OUT" -echo Starting client node... +echo [STEP] Starting client node -$tinc $c2 << EOF +tinc bar <>"$OUT" -echo bar-started >>$OUT +tinc foo debug 4 +tinc bar stop +wait_script foo subnet-down 2 +echo bar-stopped >>"$OUT" -$tinc $c1 debug 4 -$tinc $c2 stop +tinc foo debug 5 +start_tinc bar +wait_script foo subnet-up 2 +echo bar-started-2 >>"$OUT" -sleep 1 +echo [STEP] Stop server node -echo bar-stopped >>$OUT +tinc foo stop +tinc bar stop +wait_script foo tinc-down -$tinc $c1 debug 5 -$tinc $c2 start $r2 +echo [STEP] Check if the script output is what is expected -sleep 1 - -echo bar-started >>$OUT - -# Stop server node - -$tinc $c1 stop -sleep 1 -$tinc $c2 stop - -# Check if the script output is what is expected - -cat >$OUT.expected << EOF +cat >"$OUT.expected" <$OUT.actual - -cmp $OUT.actual $OUT.expected +diff -w "$OUT" "$OUT.expected"