#!/bin/sh . "${0%/*}/testlib.sh" echo Initializing node... # Initialize server node $tinc $c1 <$d1/$script << EOF #!/bin/sh echo $script \$NETNAME,\$NAME,\$DEVICE,\$IFACE,\$NODE,\$REMOTEADDRESS,\$REMOTEPORT,\$SUBNET,\$WEIGHT,\$INVITATION_FILE,\$INVITATION_URL,\$DEBUG >>$OUT 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 done # Start server node echo Starting server node... $tinc -n netname $c1 start $r1 echo foo-started >>$OUT # Invite client node echo Inviting client node... url=`$tinc -n netname2 $c1 invite bar | sed 's/\r//'` file=`cd $d1/invitations; ls | grep -v ed25519_key.priv` echo bar-invited >>$OUT echo Joining client node... $tinc -n netname3 $c2 join $url echo bar-joined >>$OUT # Start and stop client node echo Starting client node... $tinc $c2 << EOF set DeviceType dummy set Port 32760 add Subnet 10.0.0.2 add Subnet fec0::/64#5 start $r2 EOF sleep 1 echo bar-started >>$OUT $tinc $c1 debug 4 $tinc $c2 stop sleep 1 echo bar-stopped >>$OUT $tinc $c1 debug 5 $tinc $c2 start $r2 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 tinc-up netname,foo,dummy,,,,,,,,,5 subnet-up netname,foo,dummy,,foo,,,10.0.0.1,,,,5 subnet-up netname,foo,dummy,,foo,,,fec0::/64,,,,5 foo-started invitation-created netname2,foo,,,bar,,,,,$d1/invitations/$file,$url, bar-invited invitation-accepted netname,foo,dummy,,bar,127.0.0.1,,,,,,5 bar-joined host-up netname,foo,dummy,,bar,127.0.0.1,32760,,,,,5 hosts/bar-up netname,foo,dummy,,bar,127.0.0.1,32760,,,,,5 subnet-up netname,foo,dummy,,bar,127.0.0.1,32760,10.0.0.2,,,,5 subnet-up netname,foo,dummy,,bar,127.0.0.1,32760,fec0::/64,5,,,5 bar-started host-down netname,foo,dummy,,bar,127.0.0.1,32760,,,,,4 hosts/bar-down netname,foo,dummy,,bar,127.0.0.1,32760,,,,,4 subnet-down netname,foo,dummy,,bar,127.0.0.1,32760,10.0.0.2,,,,4 subnet-down netname,foo,dummy,,bar,127.0.0.1,32760,fec0::/64,5,,,4 bar-stopped host-up netname,foo,dummy,,bar,127.0.0.1,32760,,,,,5 hosts/bar-up netname,foo,dummy,,bar,127.0.0.1,32760,,,,,5 subnet-up netname,foo,dummy,,bar,127.0.0.1,32760,10.0.0.2,,,,5 subnet-up netname,foo,dummy,,bar,127.0.0.1,32760,fec0::/64,5,,,5 bar-started host-down netname,foo,dummy,,bar,127.0.0.1,32760,,,,,5 hosts/bar-down netname,foo,dummy,,bar,127.0.0.1,32760,,,,,5 subnet-down netname,foo,dummy,,bar,127.0.0.1,32760,10.0.0.2,,,,5 subnet-down netname,foo,dummy,,bar,127.0.0.1,32760,fec0::/64,5,,,5 subnet-down netname,foo,dummy,,foo,,,10.0.0.1,,,,5 subnet-down netname,foo,dummy,,foo,,,fec0::/64,,,,5 tinc-down netname,foo,dummy,,,,,,,,,5 EOF sed -i 's/\r//' $OUT cmp $OUT $OUT.expected