t_change.sh revision 1.9 1 1.9 ozaki # $NetBSD: t_change.sh,v 1.9 2016/11/07 05:25:37 ozaki-r Exp $
2 1.1 pooka #
3 1.1 pooka # Copyright (c) 2011 The NetBSD Foundation, Inc.
4 1.1 pooka # All rights reserved.
5 1.1 pooka #
6 1.1 pooka # Redistribution and use in source and binary forms, with or without
7 1.1 pooka # modification, are permitted provided that the following conditions
8 1.1 pooka # are met:
9 1.1 pooka # 1. Redistributions of source code must retain the above copyright
10 1.1 pooka # notice, this list of conditions and the following disclaimer.
11 1.1 pooka # 2. Redistributions in binary form must reproduce the above copyright
12 1.1 pooka # notice, this list of conditions and the following disclaimer in the
13 1.1 pooka # documentation and/or other materials provided with the distribution.
14 1.1 pooka #
15 1.1 pooka # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
16 1.1 pooka # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17 1.1 pooka # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18 1.1 pooka # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
19 1.1 pooka # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 1.1 pooka # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 1.1 pooka # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 1.1 pooka # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 1.1 pooka # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 1.1 pooka # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 1.1 pooka # POSSIBILITY OF SUCH DAMAGE.
26 1.1 pooka #
27 1.1 pooka
28 1.1 pooka netserver=\
29 1.8 roy "rump_server -lrumpdev -lrumpnet -lrumpnet_net \
30 1.8 roy -lrumpnet_netinet -lrumpnet_shmif"
31 1.1 pooka export RUMP_SERVER=unix://commsock
32 1.1 pooka
33 1.9 ozaki DEBUG=${DEBUG:-false}
34 1.7 ozaki
35 1.5 ozaki atf_test_case route_change_reject2blackhole cleanup
36 1.5 ozaki route_change_reject2blackhole_head()
37 1.1 pooka {
38 1.1 pooka
39 1.1 pooka atf_set "descr" "Change a reject route to blackhole"
40 1.4 joerg atf_set "require.progs" "rump_server"
41 1.1 pooka }
42 1.1 pooka
43 1.5 ozaki route_change_reject2blackhole_body()
44 1.1 pooka {
45 1.1 pooka
46 1.1 pooka atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
47 1.1 pooka
48 1.1 pooka atf_check -s exit:0 -o ignore \
49 1.1 pooka rump.route add 207.46.197.32 127.0.0.1 -reject
50 1.3 jmmv atf_check -s exit:0 -o match:UGHR -x \
51 1.1 pooka "rump.route -n show -inet | grep ^207.46"
52 1.1 pooka atf_check -s exit:0 -o ignore \
53 1.1 pooka rump.route change 207.46.197.32 127.0.0.1 -blackhole
54 1.3 jmmv atf_check -s exit:0 -o match:' UGHBS ' -e ignore -x \
55 1.6 ozaki "rump.netstat -rn -f inet | grep ^207.46"
56 1.1 pooka }
57 1.1 pooka
58 1.5 ozaki route_change_reject2blackhole_cleanup()
59 1.1 pooka {
60 1.1 pooka
61 1.1 pooka env RUMP_SERVER=unix://commsock rump.halt
62 1.1 pooka }
63 1.1 pooka
64 1.7 ozaki atf_test_case route_change_gateway cleanup
65 1.7 ozaki route_change_gateway_head()
66 1.7 ozaki {
67 1.7 ozaki
68 1.7 ozaki atf_set "descr" "Change the gateway of a route"
69 1.7 ozaki atf_set "require.progs" "rump_server"
70 1.7 ozaki }
71 1.7 ozaki
72 1.7 ozaki route_change_gateway_body()
73 1.7 ozaki {
74 1.7 ozaki
75 1.7 ozaki atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
76 1.7 ozaki
77 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 create
78 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 linkstr bus
79 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 10.0.0.10/24 up
80 1.7 ozaki
81 1.7 ozaki atf_check -s exit:0 -o ignore \
82 1.7 ozaki rump.route add -net 192.168.0.0/24 10.0.0.1
83 1.7 ozaki atf_check -s exit:0 -o match:'10.0.0.1' -x \
84 1.7 ozaki "rump.route -n show -inet | grep ^192.168"
85 1.7 ozaki atf_check -s exit:0 -o ignore \
86 1.7 ozaki rump.route change -net 192.168.0.0/24 10.0.0.254
87 1.7 ozaki atf_check -s exit:0 -o match:'10.0.0.254' -x \
88 1.7 ozaki "rump.route -n show -inet | grep ^192.168"
89 1.7 ozaki }
90 1.7 ozaki
91 1.7 ozaki route_change_gateway_cleanup()
92 1.7 ozaki {
93 1.7 ozaki
94 1.7 ozaki env RUMP_SERVER=unix://commsock rump.halt
95 1.7 ozaki }
96 1.7 ozaki
97 1.7 ozaki atf_test_case route_change_ifa cleanup
98 1.7 ozaki route_change_ifa_head()
99 1.7 ozaki {
100 1.7 ozaki
101 1.7 ozaki atf_set "descr" "Change the ifa (local address) of a route"
102 1.7 ozaki atf_set "require.progs" "rump_server"
103 1.7 ozaki }
104 1.7 ozaki
105 1.7 ozaki route_change_ifa_body()
106 1.7 ozaki {
107 1.7 ozaki
108 1.7 ozaki atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
109 1.7 ozaki
110 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 create
111 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 linkstr bus
112 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 10.0.0.10/24
113 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 alias 10.0.0.11/24
114 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 up
115 1.7 ozaki
116 1.7 ozaki atf_check -s exit:0 -o ignore \
117 1.7 ozaki rump.route add -net 192.168.0.0/24 10.0.0.1
118 1.7 ozaki atf_check -s exit:0 -o match:'10.0.0.1' -x \
119 1.7 ozaki "rump.route -n show -inet | grep ^192.168"
120 1.7 ozaki $DEBUG && rump.route -n show -inet
121 1.7 ozaki cat >./expect <<-EOF
122 1.7 ozaki route to: 192.168.0.1
123 1.7 ozaki destination: 192.168.0.0
124 1.7 ozaki mask: 255.255.255.0
125 1.7 ozaki gateway: 10.0.0.1
126 1.7 ozaki local addr: 10.0.0.10
127 1.7 ozaki interface: shmif0
128 1.7 ozaki flags: <UP,GATEWAY,DONE,STATIC>
129 1.7 ozaki recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
130 1.7 ozaki EOF
131 1.7 ozaki rump.route -n get 192.168.0.1 > ./output
132 1.7 ozaki $DEBUG && cat ./expect ./output
133 1.7 ozaki sed -i '$d' ./output
134 1.7 ozaki atf_check -s exit:0 diff ./expect ./output
135 1.7 ozaki
136 1.7 ozaki # Change the local address of the route
137 1.7 ozaki atf_check -s exit:0 -o ignore \
138 1.7 ozaki rump.route change -net 192.168.0.0/24 10.0.0.1 -ifa 10.0.0.11
139 1.7 ozaki $DEBUG && rump.route -n show -inet
140 1.7 ozaki cat >./expect <<-EOF
141 1.7 ozaki route to: 192.168.0.1
142 1.7 ozaki destination: 192.168.0.0
143 1.7 ozaki mask: 255.255.255.0
144 1.7 ozaki gateway: 10.0.0.1
145 1.7 ozaki local addr: 10.0.0.11
146 1.7 ozaki interface: shmif0
147 1.7 ozaki flags: <UP,GATEWAY,DONE,STATIC>
148 1.7 ozaki recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
149 1.7 ozaki EOF
150 1.7 ozaki rump.route -n get 192.168.0.1 > ./output
151 1.7 ozaki $DEBUG && cat ./expect ./output
152 1.7 ozaki sed -i '$d' ./output
153 1.7 ozaki atf_check -s exit:0 diff ./expect ./output
154 1.7 ozaki }
155 1.7 ozaki
156 1.7 ozaki route_change_ifa_cleanup()
157 1.7 ozaki {
158 1.7 ozaki
159 1.7 ozaki env RUMP_SERVER=unix://commsock rump.halt
160 1.7 ozaki }
161 1.7 ozaki
162 1.7 ozaki atf_test_case route_change_ifp cleanup
163 1.7 ozaki route_change_ifp_head()
164 1.7 ozaki {
165 1.7 ozaki
166 1.7 ozaki atf_set "descr" "Change a route based on an interface (ifp)"
167 1.7 ozaki atf_set "require.progs" "rump_server"
168 1.7 ozaki }
169 1.7 ozaki
170 1.7 ozaki route_change_ifp_body()
171 1.7 ozaki {
172 1.7 ozaki
173 1.7 ozaki atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
174 1.7 ozaki
175 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 create
176 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 linkstr bus
177 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 10.0.0.10/24 up
178 1.7 ozaki
179 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif1 create
180 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif1 linkstr bus
181 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif1 10.0.0.11/24 up
182 1.7 ozaki
183 1.7 ozaki atf_check -s exit:0 -o ignore \
184 1.7 ozaki rump.route add -net 192.168.0.0/24 10.0.0.1
185 1.7 ozaki atf_check -s exit:0 -o match:'10.0.0.1' -x \
186 1.7 ozaki "rump.route -n show -inet | grep ^192.168"
187 1.7 ozaki $DEBUG && rump.route -n show -inet
188 1.7 ozaki cat >./expect <<-EOF
189 1.7 ozaki route to: 192.168.0.1
190 1.7 ozaki destination: 192.168.0.0
191 1.7 ozaki mask: 255.255.255.0
192 1.7 ozaki gateway: 10.0.0.1
193 1.7 ozaki local addr: 10.0.0.10
194 1.7 ozaki interface: shmif0
195 1.7 ozaki flags: <UP,GATEWAY,DONE,STATIC>
196 1.7 ozaki recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
197 1.7 ozaki EOF
198 1.7 ozaki rump.route -n get 192.168.0.1 > ./output
199 1.7 ozaki $DEBUG && cat ./expect ./output
200 1.7 ozaki sed -i '$d' ./output
201 1.7 ozaki atf_check -s exit:0 diff ./expect ./output
202 1.7 ozaki
203 1.7 ozaki # Change a route based on an interface
204 1.7 ozaki atf_check -s exit:0 -o ignore \
205 1.7 ozaki rump.route change -net 192.168.0.0/24 10.0.0.1 -ifp shmif1
206 1.7 ozaki $DEBUG && rump.route -n show -inet
207 1.7 ozaki cat >./expect <<-EOF
208 1.7 ozaki route to: 192.168.0.1
209 1.7 ozaki destination: 192.168.0.0
210 1.7 ozaki mask: 255.255.255.0
211 1.7 ozaki gateway: 10.0.0.1
212 1.7 ozaki local addr: 10.0.0.11
213 1.7 ozaki interface: shmif1
214 1.7 ozaki flags: <UP,GATEWAY,DONE,STATIC>
215 1.7 ozaki recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
216 1.7 ozaki EOF
217 1.7 ozaki rump.route -n get 192.168.0.1 > ./output
218 1.7 ozaki $DEBUG && cat ./expect ./output
219 1.7 ozaki sed -i '$d' ./output
220 1.7 ozaki atf_check -s exit:0 diff ./expect ./output
221 1.7 ozaki }
222 1.7 ozaki
223 1.7 ozaki route_change_ifp_cleanup()
224 1.7 ozaki {
225 1.7 ozaki
226 1.7 ozaki env RUMP_SERVER=unix://commsock rump.halt
227 1.7 ozaki }
228 1.7 ozaki
229 1.7 ozaki atf_test_case route_change_ifp_ifa cleanup
230 1.7 ozaki route_change_ifp_head()
231 1.7 ozaki {
232 1.7 ozaki
233 1.7 ozaki atf_set "descr" "Change a route with -ifp and -ifa"
234 1.7 ozaki atf_set "require.progs" "rump_server"
235 1.7 ozaki }
236 1.7 ozaki
237 1.7 ozaki route_change_ifp_ifa_body()
238 1.7 ozaki {
239 1.7 ozaki
240 1.7 ozaki atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
241 1.7 ozaki
242 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 create
243 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 linkstr bus
244 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 10.0.0.10/24 up
245 1.7 ozaki
246 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif1 create
247 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif1 linkstr bus
248 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif1 10.0.0.11/24 up
249 1.7 ozaki
250 1.7 ozaki atf_check -s exit:0 -o ignore \
251 1.7 ozaki rump.route add -net 192.168.0.0/24 10.0.0.1
252 1.7 ozaki atf_check -s exit:0 -o match:'10.0.0.1' -x \
253 1.7 ozaki "rump.route -n show -inet | grep ^192.168"
254 1.7 ozaki $DEBUG && rump.route -n show -inet
255 1.7 ozaki cat >./expect <<-EOF
256 1.7 ozaki route to: 192.168.0.1
257 1.7 ozaki destination: 192.168.0.0
258 1.7 ozaki mask: 255.255.255.0
259 1.7 ozaki gateway: 10.0.0.1
260 1.7 ozaki local addr: 10.0.0.10
261 1.7 ozaki interface: shmif0
262 1.7 ozaki flags: <UP,GATEWAY,DONE,STATIC>
263 1.7 ozaki recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
264 1.7 ozaki EOF
265 1.7 ozaki rump.route -n get 192.168.0.1 > ./output
266 1.7 ozaki $DEBUG && cat ./expect ./output
267 1.7 ozaki sed -i '$d' ./output
268 1.7 ozaki atf_check -s exit:0 diff ./expect ./output
269 1.7 ozaki
270 1.7 ozaki # Change a route with -ifa and -ifp
271 1.7 ozaki atf_check -s exit:0 -o ignore \
272 1.7 ozaki rump.route change -net 192.168.0.0/24 -ifa 10.0.0.1 -ifp shmif1
273 1.7 ozaki $DEBUG && rump.route -n show -inet
274 1.7 ozaki cat >./expect <<-EOF
275 1.7 ozaki route to: 192.168.0.1
276 1.7 ozaki destination: 192.168.0.0
277 1.7 ozaki mask: 255.255.255.0
278 1.7 ozaki gateway: 10.0.0.1
279 1.7 ozaki local addr: 10.0.0.11
280 1.7 ozaki interface: shmif1
281 1.7 ozaki flags: <UP,GATEWAY,DONE,STATIC>
282 1.7 ozaki recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
283 1.7 ozaki EOF
284 1.7 ozaki rump.route -n get 192.168.0.1 > ./output
285 1.7 ozaki $DEBUG && cat ./expect ./output
286 1.7 ozaki sed -i '$d' ./output
287 1.7 ozaki atf_check -s exit:0 diff ./expect ./output
288 1.7 ozaki }
289 1.7 ozaki
290 1.7 ozaki route_change_ifp_ifa_cleanup()
291 1.7 ozaki {
292 1.7 ozaki
293 1.7 ozaki env RUMP_SERVER=unix://commsock rump.halt
294 1.7 ozaki }
295 1.7 ozaki
296 1.1 pooka atf_init_test_cases()
297 1.1 pooka {
298 1.1 pooka
299 1.5 ozaki atf_add_test_case route_change_reject2blackhole
300 1.7 ozaki atf_add_test_case route_change_gateway
301 1.7 ozaki atf_add_test_case route_change_ifa
302 1.7 ozaki atf_add_test_case route_change_ifp
303 1.7 ozaki atf_add_test_case route_change_ifp_ifa
304 1.1 pooka }
305