Test running ping through two tinc daemons.
This is a more complicated test with one tinc daemon using a tap interface (therefore requiring root), and a second one using a multicast interface. A separate program "pong" is listening on the same multicast address, and waits for ARP and ICMP packets, responding to ICMP echo packets with replies. This test doesn't require any configuration of the tap interface.
This commit is contained in:
parent
fe1d0043c8
commit
b80cbaba04
3 changed files with 258 additions and 0 deletions
58
test/ping.test
Executable file
58
test/ping.test
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
#!/bin/sh
|
||||
|
||||
. ./testlib.sh
|
||||
|
||||
# Skip this test if we aren't root
|
||||
|
||||
test "`id -u`" = "0" || exit 77
|
||||
|
||||
# Initialize two nodes
|
||||
|
||||
$tinc $c1 <<EOF
|
||||
init foo
|
||||
set Mode switch
|
||||
set Interface ping.test
|
||||
set Port 32573
|
||||
set Address localhost
|
||||
EOF
|
||||
|
||||
cat >$d1/tinc-up <<EOF
|
||||
#!/bin/sh
|
||||
ifconfig \$INTERFACE up
|
||||
EOF
|
||||
|
||||
$tinc $c2 <<EOF
|
||||
init bar
|
||||
set Mode switch
|
||||
set DeviceType multicast
|
||||
set Device 233.252.0.1 32754
|
||||
add ConnectTo foo
|
||||
EOF
|
||||
|
||||
# Exchange configuration files
|
||||
|
||||
$tinc $c1 export | $tinc $c2 exchange | $tinc $c1 import
|
||||
|
||||
# Ensure we have a working multicast route
|
||||
|
||||
ip route replace 233.252.0.0/16 dev lo
|
||||
|
||||
# Start pong program in background
|
||||
|
||||
./pong 233.252.0.1 32754 10.6.5.5 &
|
||||
pong=$!
|
||||
|
||||
# Start tinc and try to ping
|
||||
|
||||
$tinc $c1 start $r1
|
||||
$tinc $c2 start $r2
|
||||
|
||||
sleep 1
|
||||
|
||||
ping -r -I ping.test -c3 10.6.5.5
|
||||
|
||||
# Clean up
|
||||
|
||||
kill $pong
|
||||
$tinc $c2 stop
|
||||
$tinc $c1 stop
|
||||
Loading…
Add table
Add a link
Reference in a new issue