Module Name:    src
Committed By:   ozaki-r
Date:           Thu Jul 21 02:02:30 UTC 2016

Modified Files:
        src/tests/net/route: t_change.sh

Log Message:
Add some tests for route change


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/tests/net/route/t_change.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/net/route/t_change.sh
diff -u src/tests/net/route/t_change.sh:1.6 src/tests/net/route/t_change.sh:1.7
--- src/tests/net/route/t_change.sh:1.6	Thu Jul 21 01:56:54 2016
+++ src/tests/net/route/t_change.sh	Thu Jul 21 02:02:30 2016
@@ -1,4 +1,4 @@
-#	$NetBSD: t_change.sh,v 1.6 2016/07/21 01:56:54 ozaki-r Exp $
+#	$NetBSD: t_change.sh,v 1.7 2016/07/21 02:02:30 ozaki-r Exp $
 #
 # Copyright (c) 2011 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -26,9 +26,11 @@
 #
 
 netserver=\
-"rump_server -lrumpnet -lrumpnet_net -lrumpnet_netinet"
+"rump_server -lrumpnet -lrumpnet_net -lrumpnet_netinet -lrumpnet_shmif"
 export RUMP_SERVER=unix://commsock
 
+DEBUG=false
+
 atf_test_case route_change_reject2blackhole cleanup
 route_change_reject2blackhole_head()
 {
@@ -58,8 +60,244 @@ route_change_reject2blackhole_cleanup()
 	env RUMP_SERVER=unix://commsock rump.halt
 }
 
+atf_test_case route_change_gateway cleanup
+route_change_gateway_head()
+{
+
+	atf_set "descr" "Change the gateway of a route"
+	atf_set "require.progs" "rump_server"
+}
+
+route_change_gateway_body()
+{
+
+	atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
+
+	atf_check -s exit:0 rump.ifconfig shmif0 create
+	atf_check -s exit:0 rump.ifconfig shmif0 linkstr bus
+	atf_check -s exit:0 rump.ifconfig shmif0 10.0.0.10/24 up
+
+	atf_check -s exit:0 -o ignore \
+	    rump.route add -net 192.168.0.0/24 10.0.0.1
+	atf_check -s exit:0 -o match:'10.0.0.1' -x \
+	    "rump.route -n show -inet | grep ^192.168"
+	atf_check -s exit:0 -o ignore \
+	    rump.route change -net 192.168.0.0/24 10.0.0.254
+	atf_check -s exit:0 -o match:'10.0.0.254' -x \
+	    "rump.route -n show -inet | grep ^192.168"
+}
+
+route_change_gateway_cleanup()
+{
+
+	env RUMP_SERVER=unix://commsock rump.halt
+}
+
+atf_test_case route_change_ifa cleanup
+route_change_ifa_head()
+{
+
+	atf_set "descr" "Change the ifa (local address) of a route"
+	atf_set "require.progs" "rump_server"
+}
+
+route_change_ifa_body()
+{
+
+	atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
+
+	atf_check -s exit:0 rump.ifconfig shmif0 create
+	atf_check -s exit:0 rump.ifconfig shmif0 linkstr bus
+	atf_check -s exit:0 rump.ifconfig shmif0 10.0.0.10/24
+	atf_check -s exit:0 rump.ifconfig shmif0 alias 10.0.0.11/24
+	atf_check -s exit:0 rump.ifconfig shmif0 up
+
+	atf_check -s exit:0 -o ignore \
+	    rump.route add -net 192.168.0.0/24 10.0.0.1
+	atf_check -s exit:0 -o match:'10.0.0.1' -x \
+	    "rump.route -n show -inet | grep ^192.168"
+	$DEBUG && rump.route -n show -inet
+	cat >./expect <<-EOF
+   route to: 192.168.0.1
+destination: 192.168.0.0
+       mask: 255.255.255.0
+    gateway: 10.0.0.1
+ local addr: 10.0.0.10
+  interface: shmif0
+      flags: <UP,GATEWAY,DONE,STATIC>
+ recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
+	EOF
+	rump.route -n get 192.168.0.1 > ./output
+	$DEBUG && cat ./expect ./output
+	sed -i '$d' ./output
+	atf_check -s exit:0 diff ./expect ./output
+
+	# Change the local address of the route
+	atf_check -s exit:0 -o ignore \
+	    rump.route change -net 192.168.0.0/24 10.0.0.1 -ifa 10.0.0.11
+	$DEBUG && rump.route -n show -inet
+	cat >./expect <<-EOF
+   route to: 192.168.0.1
+destination: 192.168.0.0
+       mask: 255.255.255.0
+    gateway: 10.0.0.1
+ local addr: 10.0.0.11
+  interface: shmif0
+      flags: <UP,GATEWAY,DONE,STATIC>
+ recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
+	EOF
+	rump.route -n get 192.168.0.1 > ./output
+	$DEBUG && cat ./expect ./output
+	sed -i '$d' ./output
+	atf_check -s exit:0 diff ./expect ./output
+}
+
+route_change_ifa_cleanup()
+{
+
+	env RUMP_SERVER=unix://commsock rump.halt
+}
+
+atf_test_case route_change_ifp cleanup
+route_change_ifp_head()
+{
+
+	atf_set "descr" "Change a route based on an interface (ifp)"
+	atf_set "require.progs" "rump_server"
+}
+
+route_change_ifp_body()
+{
+
+	atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
+
+	atf_check -s exit:0 rump.ifconfig shmif0 create
+	atf_check -s exit:0 rump.ifconfig shmif0 linkstr bus
+	atf_check -s exit:0 rump.ifconfig shmif0 10.0.0.10/24 up
+
+	atf_check -s exit:0 rump.ifconfig shmif1 create
+	atf_check -s exit:0 rump.ifconfig shmif1 linkstr bus
+	atf_check -s exit:0 rump.ifconfig shmif1 10.0.0.11/24 up
+
+	atf_check -s exit:0 -o ignore \
+	    rump.route add -net 192.168.0.0/24 10.0.0.1
+	atf_check -s exit:0 -o match:'10.0.0.1' -x \
+	    "rump.route -n show -inet | grep ^192.168"
+	$DEBUG && rump.route -n show -inet
+	cat >./expect <<-EOF
+   route to: 192.168.0.1
+destination: 192.168.0.0
+       mask: 255.255.255.0
+    gateway: 10.0.0.1
+ local addr: 10.0.0.10
+  interface: shmif0
+      flags: <UP,GATEWAY,DONE,STATIC>
+ recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
+	EOF
+	rump.route -n get 192.168.0.1 > ./output
+	$DEBUG && cat ./expect ./output
+	sed -i '$d' ./output
+	atf_check -s exit:0 diff ./expect ./output
+
+	# Change a route based on an interface
+	atf_check -s exit:0 -o ignore \
+	    rump.route change -net 192.168.0.0/24 10.0.0.1 -ifp shmif1
+	$DEBUG && rump.route -n show -inet
+	cat >./expect <<-EOF
+   route to: 192.168.0.1
+destination: 192.168.0.0
+       mask: 255.255.255.0
+    gateway: 10.0.0.1
+ local addr: 10.0.0.11
+  interface: shmif1
+      flags: <UP,GATEWAY,DONE,STATIC>
+ recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
+	EOF
+	rump.route -n get 192.168.0.1 > ./output
+	$DEBUG && cat ./expect ./output
+	sed -i '$d' ./output
+	atf_check -s exit:0 diff ./expect ./output
+}
+
+route_change_ifp_cleanup()
+{
+
+	env RUMP_SERVER=unix://commsock rump.halt
+}
+
+atf_test_case route_change_ifp_ifa cleanup
+route_change_ifp_head()
+{
+
+	atf_set "descr" "Change a route with -ifp and -ifa"
+	atf_set "require.progs" "rump_server"
+}
+
+route_change_ifp_ifa_body()
+{
+
+	atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
+
+	atf_check -s exit:0 rump.ifconfig shmif0 create
+	atf_check -s exit:0 rump.ifconfig shmif0 linkstr bus
+	atf_check -s exit:0 rump.ifconfig shmif0 10.0.0.10/24 up
+
+	atf_check -s exit:0 rump.ifconfig shmif1 create
+	atf_check -s exit:0 rump.ifconfig shmif1 linkstr bus
+	atf_check -s exit:0 rump.ifconfig shmif1 10.0.0.11/24 up
+
+	atf_check -s exit:0 -o ignore \
+	    rump.route add -net 192.168.0.0/24 10.0.0.1
+	atf_check -s exit:0 -o match:'10.0.0.1' -x \
+	    "rump.route -n show -inet | grep ^192.168"
+	$DEBUG && rump.route -n show -inet
+	cat >./expect <<-EOF
+   route to: 192.168.0.1
+destination: 192.168.0.0
+       mask: 255.255.255.0
+    gateway: 10.0.0.1
+ local addr: 10.0.0.10
+  interface: shmif0
+      flags: <UP,GATEWAY,DONE,STATIC>
+ recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
+	EOF
+	rump.route -n get 192.168.0.1 > ./output
+	$DEBUG && cat ./expect ./output
+	sed -i '$d' ./output
+	atf_check -s exit:0 diff ./expect ./output
+
+	# Change a route with -ifa and -ifp
+	atf_check -s exit:0 -o ignore \
+	    rump.route change -net 192.168.0.0/24 -ifa 10.0.0.1 -ifp shmif1
+	$DEBUG && rump.route -n show -inet
+	cat >./expect <<-EOF
+   route to: 192.168.0.1
+destination: 192.168.0.0
+       mask: 255.255.255.0
+    gateway: 10.0.0.1
+ local addr: 10.0.0.11
+  interface: shmif1
+      flags: <UP,GATEWAY,DONE,STATIC>
+ recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
+	EOF
+	rump.route -n get 192.168.0.1 > ./output
+	$DEBUG && cat ./expect ./output
+	sed -i '$d' ./output
+	atf_check -s exit:0 diff ./expect ./output
+}
+
+route_change_ifp_ifa_cleanup()
+{
+
+	env RUMP_SERVER=unix://commsock rump.halt
+}
+
 atf_init_test_cases()
 {
 
 	atf_add_test_case route_change_reject2blackhole
+	atf_add_test_case route_change_gateway
+	atf_add_test_case route_change_ifa
+	atf_add_test_case route_change_ifp
+	atf_add_test_case route_change_ifp_ifa
 }

Reply via email to