X-Git-Url: https://www.tinc-vpn.org/git/browse?a=blobdiff_plain;f=test%2Fscripts.test;h=ff0e565fd88351ba17c53e99e75125b0b5704e11;hb=df716df33af8e9a5b93d573a023ecd7fc24d9a03;hp=e209d6912d9c83cbc9de47dbc56d160b7e97d71a;hpb=25a3945e77927c11cae915b7b46fac7ac789013d;p=tinc diff --git a/test/scripts.test b/test/scripts.test index e209d691..ff0e565f 100755 --- a/test/scripts.test +++ b/test/scripts.test @@ -1,130 +1,133 @@ #!/bin/sh -. "${0%/*}/testlib.sh" +# shellcheck disable=SC1090 +. "$TESTLIB_PATH" -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... +echo [STEP] Starting server node -$tinc $c1 -n netname start $r1 +start_tinc foo -n netname +wait_script foo subnet-up 2 +echo foo-started >>"$OUT" -echo foo-started >>$OUT +echo [STEP] Inviting client node -# Invite client node +url=$(tinc foo -n netname2 invite bar) +file=$(basename "$(find "$DIR_FOO/invitations" -type f ! -name ed25519_key.priv)") -echo Inviting client node... +if is_windows; then + file=$(cygpath --unix -- "$file") +fi -url=`$tinc $c1 -n netname2 invite bar | sed 's/\r//'` -file=`cd $d1/invitations; ls | grep -v ed25519_key.priv` -echo bar-invited >>$OUT +wait_script foo invitation-created +echo bar-invited >>"$OUT" -echo Joining client node... +echo [STEP] Joining client node -$tinc $c2 -n netname3 join $url -echo bar-joined >>$OUT +tinc bar -n netname3 join "$url" +wait_script foo invitation-accepted +echo bar-joined >>"$OUT" -# Start and stop client node +echo [STEP] Starting client node -echo Starting client node... - -$tinc $c2 << EOF +tinc bar <>$OUT - -$tinc $c1 debug 4 -$tinc $c2 stop - -sleep 1 - -echo bar-stopped >>$OUT - -$tinc $c1 debug 5 -$tinc $c2 start $r2 +start_tinc bar +wait_script foo subnet-up 2 +echo bar-started-1 >>"$OUT" -sleep 1 +tinc foo debug 4 +tinc bar stop +wait_script foo subnet-down 2 +echo bar-stopped >>"$OUT" -echo bar-started >>$OUT +tinc foo debug 5 +start_tinc bar +wait_script foo subnet-up 2 +echo bar-started-2 >>"$OUT" -# Stop server node +echo [STEP] Stop server node -$tinc $c1 stop -sleep 1 -$tinc $c2 stop +tinc foo stop +tinc bar stop +wait_script foo tinc-down -# Check if the script output is what is expected +echo [STEP] Check if the script output is what is expected -cat >$OUT.expected << EOF +cat >"$OUT.expected" <