Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/tests/net/route Add tests for "route get"
details: https://anonhg.NetBSD.org/src/rev/0465abffafd5
branches: trunk
changeset: 344423:0465abffafd5
user: ozaki-r <ozaki-r%NetBSD.org@localhost>
date: Mon Mar 28 01:53:07 2016 +0000
description:
Add tests for "route get"
diffstat:
tests/net/route/t_route.sh | 328 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 327 insertions(+), 1 deletions(-)
diffs (truncated from 355 to 300 lines):
diff -r ed2cf5e97f0d -r 0465abffafd5 tests/net/route/t_route.sh
--- a/tests/net/route/t_route.sh Sun Mar 27 21:51:20 2016 +0000
+++ b/tests/net/route/t_route.sh Mon Mar 28 01:53:07 2016 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: t_route.sh,v 1.1 2016/01/29 04:15:46 ozaki-r Exp $
+# $NetBSD: t_route.sh,v 1.2 2016/03/28 01:53:07 ozaki-r Exp $
#
# Copyright (c) 2016 Internet Initiative Japan Inc.
# All rights reserved.
@@ -26,10 +26,29 @@
#
RUMP_LIBS="-lrumpnet -lrumpnet_net -lrumpnet_netinet -lrumpnet_shmif"
+RUMP_LIBS_IPV6="$RUMP_LIBS -lrumpnet_netinet6"
+
+# non_subnet_gateway
SOCK_CLIENT=unix://commsock1
SOCK_GW=unix://commsock2
BUS=bus1
+# command_get
+SOCKSRC=unix://commsock1
+SOCKFWD=unix://commsock2
+SOCKDST=unix://commsock3
+IP4SRC=10.0.1.2
+IP4SRCGW=10.0.1.1
+IP4DSTGW=10.0.2.1
+IP4DST=10.0.2.2
+IP4DST_BCAST=10.0.2.255
+IP6SRC=fc00:0:0:1::2
+IP6SRCGW=fc00:0:0:1::1
+IP6DSTGW=fc00:0:0:2::1
+IP6DST=fc00:0:0:2::2
+BUS_SRCGW=bus1
+BUS_DSTGW=bus2
+
DEBUG=false
TIMEOUT=1
PING_OPTS="-n -c 1 -w $TIMEOUT"
@@ -96,8 +115,315 @@
env RUMP_SERVER=$SOCK_GW rump.halt
}
+atf_test_case command_get cleanup
+atf_test_case command_get6 cleanup
+command_get_head()
+{
+
+ atf_set "descr" "tests of route get command"
+ atf_set "require.progs" "rump_server"
+}
+
+command_get6_head()
+{
+
+ atf_set "descr" "tests of route get command (IPv6)"
+ atf_set "require.progs" "rump_server"
+}
+
+setup_endpoint()
+{
+ local sock=${1}
+ local addr=${2}
+ local bus=${3}
+ local mode=${4}
+ local gw=${5}
+
+ export RUMP_SERVER=${sock}
+ atf_check -s exit:0 rump.ifconfig shmif0 create
+ atf_check -s exit:0 rump.ifconfig shmif0 linkstr ${bus}
+ if [ $mode = "ipv6" ]; then
+ atf_check -s exit:0 rump.ifconfig shmif0 inet6 ${addr}
+ atf_check -s exit:0 -o ignore rump.route add -inet6 default ${gw}
+ else
+ atf_check -s exit:0 rump.ifconfig shmif0 inet ${addr} netmask 0xffffff00
+ atf_check -s exit:0 -o ignore rump.route add default ${gw}
+ fi
+ atf_check -s exit:0 rump.ifconfig shmif0 up
+
+ if $DEBUG; then
+ rump.ifconfig shmif0
+ rump.netstat -nr
+ fi
+}
+
+setup_forwarder()
+{
+ mode=${1}
+
+ export RUMP_SERVER=$SOCKFWD
+ atf_check -s exit:0 rump.ifconfig shmif0 create
+ atf_check -s exit:0 rump.ifconfig shmif0 linkstr $BUS_SRCGW
+
+ atf_check -s exit:0 rump.ifconfig shmif1 create
+ atf_check -s exit:0 rump.ifconfig shmif1 linkstr $BUS_DSTGW
+
+ if [ $mode = "ipv6" ]; then
+ atf_check -s exit:0 rump.ifconfig shmif0 inet6 ${IP6SRCGW}
+ atf_check -s exit:0 rump.ifconfig shmif1 inet6 ${IP6DSTGW}
+ else
+ atf_check -s exit:0 rump.ifconfig shmif0 inet ${IP4SRCGW} netmask 0xffffff00
+ atf_check -s exit:0 rump.ifconfig shmif1 inet ${IP4DSTGW} netmask 0xffffff00
+ fi
+
+ atf_check -s exit:0 rump.ifconfig shmif0 up
+ atf_check -s exit:0 rump.ifconfig shmif1 up
+
+ if $DEBUG; then
+ rump.netstat -nr
+ if [ $mode = "ipv6" ]; then
+ rump.sysctl net.inet6.ip6.forwarding
+ else
+ rump.sysctl net.inet.ip.forwarding
+ fi
+ fi
+}
+
+setup_forwarding()
+{
+ export RUMP_SERVER=$SOCKFWD
+ atf_check -s exit:0 -o ignore rump.sysctl -w net.inet.ip.forwarding=1
+}
+
+setup_forwarding6()
+{
+ export RUMP_SERVER=$SOCKFWD
+ atf_check -s exit:0 -o ignore rump.sysctl -w net.inet6.ip6.forwarding=1
+}
+
+setup()
+{
+
+ atf_check -s exit:0 rump_server $RUMP_LIBS $SOCKSRC
+ atf_check -s exit:0 rump_server $RUMP_LIBS $SOCKFWD
+ atf_check -s exit:0 rump_server $RUMP_LIBS $SOCKDST
+
+ setup_endpoint $SOCKSRC $IP4SRC $BUS_SRCGW ipv4 $IP4SRCGW
+ setup_endpoint $SOCKDST $IP4DST $BUS_DSTGW ipv4 $IP4DSTGW
+ setup_forwarder ipv4
+}
+
+setup6()
+{
+
+ atf_check -s exit:0 rump_server $RUMP_LIBS_IPV6 $SOCKSRC
+ atf_check -s exit:0 rump_server $RUMP_LIBS_IPV6 $SOCKFWD
+ atf_check -s exit:0 rump_server $RUMP_LIBS_IPV6 $SOCKDST
+
+ setup_endpoint $SOCKSRC $IP6SRC $BUS_SRCGW ipv6 $IP6SRCGW
+ setup_endpoint $SOCKDST $IP6DST $BUS_DSTGW ipv6 $IP6DSTGW
+ setup_forwarder ipv6
+}
+
+test_route_get()
+{
+
+ export RUMP_SERVER=$SOCKSRC
+ $DEBUG && rump.netstat -nr -f inet
+ $DEBUG && rump.arp -n -a
+
+ # Make sure an ARP cache to the gateway doesn't exist
+ rump.arp -d $IP4SRCGW
+
+ # Local
+ cat >./expect <<-EOF
+ route to: 10.0.1.2
+destination: 10.0.1.2
+ local addr: 10.0.1.2
+ interface: lo0
+ flags: <UP,HOST,DONE,LLINFO,LOCAL>
+ recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
+ 0 0 0 0 0 0 0 0
+ EOF
+ rump.route -n get $IP4SRC > ./output
+ $DEBUG && cat ./expect ./output
+ atf_check -s exit:0 diff -q ./expect ./output
+
+ # Neighbor
+ cat >./expect <<-EOF
+ route to: 10.0.1.1
+destination: 10.0.1.0
+ mask: 255.255.255.0
+ local addr: 10.0.1.2
+ interface: shmif0
+ flags: <UP,DONE,CLONING>
+ recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
+ 0 0 0 0 0 0 0 0
+ EOF
+ rump.route -n get $IP4SRCGW > ./output
+ $DEBUG && cat ./expect ./output
+ atf_check -s exit:0 diff -q ./expect ./output
+
+ # Remote host
+ cat >./expect <<-EOF
+ route to: 10.0.2.2
+destination: default
+ mask: default
+ gateway: 10.0.1.1
+ local addr: 10.0.1.2
+ interface: shmif0
+ flags: <UP,GATEWAY,DONE,STATIC>
+ recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
+ 0 0 0 0 0 0 0 0
+ EOF
+ rump.route -n get $IP4DST > ./output
+ $DEBUG && cat ./expect ./output
+ atf_check -s exit:0 diff -q ./expect ./output
+
+ # Create a ARP cache
+ atf_check -s exit:0 -o ignore rump.ping -q -n -w $TIMEOUT -c 1 $IP4SRCGW
+
+ # Neighbor with a cache (cloned route)
+ cat >./expect <<-EOF
+ route to: 10.0.1.1
+destination: 10.0.1.1
+ local addr: 10.0.1.2
+ interface: shmif0
+ flags: <UP,HOST,DONE,LLINFO,CLONED>
+ recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
+ EOF
+ rump.route -n get $IP4SRCGW > ./output
+ $DEBUG && cat ./expect ./output
+ # Trim the last line including unfixed expire time
+ head -6 ./output > ./trimed
+ atf_check -s exit:0 diff -q ./expect ./trimed
+}
+
+test_route_get6()
+{
+
+ export RUMP_SERVER=$SOCKSRC
+ $DEBUG && rump.netstat -nr -f inet
+ $DEBUG && rump.ndp -n -a
+
+ # Make sure an ARP cache to the gateway doesn't exist
+ rump.ndp -d $IP6SRCGW
+
+ # Local
+ cat >./expect <<-EOF
+ route to: fc00:0:0:1::2
+destination: fc00:0:0:1::2
+ local addr: fc00:0:0:1::2
+ interface: lo0
+ flags: <UP,HOST,DONE,LLINFO,LOCAL>
+ recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
+ 0 0 0 0 0 0 0 0
+ EOF
+ rump.route -n get -inet6 $IP6SRC > ./output
+ $DEBUG && cat ./expect ./output
+ atf_check -s exit:0 diff -q ./expect ./output
+
+ # Neighbor
+ cat >./expect <<-EOF
+ route to: fc00:0:0:1::1
+destination: fc00:0:0:1::
+ mask: ffff:ffff:ffff:ffff::
+ local addr: fc00:0:0:1::2
+ interface: shmif0
+ flags: <UP,DONE,CLONING>
+ recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
+ 0 0 0 0 0 0 0 0
+ EOF
+ rump.route -n get -inet6 $IP6SRCGW > ./output
+ $DEBUG && cat ./expect ./output
+ atf_check -s exit:0 diff -q ./expect ./output
+
+ # Remote host
+ cat >./expect <<-EOF
+ route to: fc00:0:0:2::2
+destination: ::
+ mask: default
+ gateway: fc00:0:0:1::1
+ local addr: fc00:0:0:1::2
+ interface: shmif0
+ flags: <UP,GATEWAY,DONE,STATIC>
+ recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
+ 0 0 0 0 0 0 0 0
+ EOF
+ rump.route -n get -inet6 $IP6DST > ./output
+ $DEBUG && cat ./expect ./output
+ atf_check -s exit:0 diff -q ./expect ./output
+
+ # Create a NDP cache
+ atf_check -s exit:0 -o ignore rump.ping6 -n -c 1 -X $TIMEOUT $IP6SRCGW
+
+ # Neighbor with a cache (cloned route)
+ cat >./expect <<-EOF
+ route to: fc00:0:0:1::1
+destination: fc00:0:0:1::1
+ local addr: fc00:0:0:1::2
+ interface: shmif0
+ flags: <UP,HOST,DONE,LLINFO,CLONED>
+ recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
+ 0 0 0 0 0 0 0 0
+ EOF
+ rump.route -n get -inet6 $IP6SRCGW > ./output
+ $DEBUG && cat ./expect ./output
+ # No need to trim, because a NDP cache doesn't set an expire time
+ atf_check -s exit:0 diff -q ./expect ./output
+}
Home |
Main Index |
Thread Index |
Old Index