t_change.sh revision 1.7 1 1.7 ozaki # $NetBSD: t_change.sh,v 1.7 2016/07/21 02:02:30 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.7 ozaki "rump_server -lrumpnet -lrumpnet_net -lrumpnet_netinet -lrumpnet_shmif"
30 1.1 pooka export RUMP_SERVER=unix://commsock
31 1.1 pooka
32 1.7 ozaki DEBUG=false
33 1.7 ozaki
34 1.5 ozaki atf_test_case route_change_reject2blackhole cleanup
35 1.5 ozaki route_change_reject2blackhole_head()
36 1.1 pooka {
37 1.1 pooka
38 1.1 pooka atf_set "descr" "Change a reject route to blackhole"
39 1.4 joerg atf_set "require.progs" "rump_server"
40 1.1 pooka }
41 1.1 pooka
42 1.5 ozaki route_change_reject2blackhole_body()
43 1.1 pooka {
44 1.1 pooka
45 1.1 pooka atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
46 1.1 pooka
47 1.1 pooka atf_check -s exit:0 -o ignore \
48 1.1 pooka rump.route add 207.46.197.32 127.0.0.1 -reject
49 1.3 jmmv atf_check -s exit:0 -o match:UGHR -x \
50 1.1 pooka "rump.route -n show -inet | grep ^207.46"
51 1.1 pooka atf_check -s exit:0 -o ignore \
52 1.1 pooka rump.route change 207.46.197.32 127.0.0.1 -blackhole
53 1.3 jmmv atf_check -s exit:0 -o match:' UGHBS ' -e ignore -x \
54 1.6 ozaki "rump.netstat -rn -f inet | grep ^207.46"
55 1.1 pooka }
56 1.1 pooka
57 1.5 ozaki route_change_reject2blackhole_cleanup()
58 1.1 pooka {
59 1.1 pooka
60 1.1 pooka env RUMP_SERVER=unix://commsock rump.halt
61 1.1 pooka }
62 1.1 pooka
63 1.7 ozaki atf_test_case route_change_gateway cleanup
64 1.7 ozaki route_change_gateway_head()
65 1.7 ozaki {
66 1.7 ozaki
67 1.7 ozaki atf_set "descr" "Change the gateway of a route"
68 1.7 ozaki atf_set "require.progs" "rump_server"
69 1.7 ozaki }
70 1.7 ozaki
71 1.7 ozaki route_change_gateway_body()
72 1.7 ozaki {
73 1.7 ozaki
74 1.7 ozaki atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
75 1.7 ozaki
76 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 create
77 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 linkstr bus
78 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 10.0.0.10/24 up
79 1.7 ozaki
80 1.7 ozaki atf_check -s exit:0 -o ignore \
81 1.7 ozaki rump.route add -net 192.168.0.0/24 10.0.0.1
82 1.7 ozaki atf_check -s exit:0 -o match:'10.0.0.1' -x \
83 1.7 ozaki "rump.route -n show -inet | grep ^192.168"
84 1.7 ozaki atf_check -s exit:0 -o ignore \
85 1.7 ozaki rump.route change -net 192.168.0.0/24 10.0.0.254
86 1.7 ozaki atf_check -s exit:0 -o match:'10.0.0.254' -x \
87 1.7 ozaki "rump.route -n show -inet | grep ^192.168"
88 1.7 ozaki }
89 1.7 ozaki
90 1.7 ozaki route_change_gateway_cleanup()
91 1.7 ozaki {
92 1.7 ozaki
93 1.7 ozaki env RUMP_SERVER=unix://commsock rump.halt
94 1.7 ozaki }
95 1.7 ozaki
96 1.7 ozaki atf_test_case route_change_ifa cleanup
97 1.7 ozaki route_change_ifa_head()
98 1.7 ozaki {
99 1.7 ozaki
100 1.7 ozaki atf_set "descr" "Change the ifa (local address) of a route"
101 1.7 ozaki atf_set "require.progs" "rump_server"
102 1.7 ozaki }
103 1.7 ozaki
104 1.7 ozaki route_change_ifa_body()
105 1.7 ozaki {
106 1.7 ozaki
107 1.7 ozaki atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
108 1.7 ozaki
109 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 create
110 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 linkstr bus
111 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 10.0.0.10/24
112 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 alias 10.0.0.11/24
113 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 up
114 1.7 ozaki
115 1.7 ozaki atf_check -s exit:0 -o ignore \
116 1.7 ozaki rump.route add -net 192.168.0.0/24 10.0.0.1
117 1.7 ozaki atf_check -s exit:0 -o match:'10.0.0.1' -x \
118 1.7 ozaki "rump.route -n show -inet | grep ^192.168"
119 1.7 ozaki $DEBUG && rump.route -n show -inet
120 1.7 ozaki cat >./expect <<-EOF
121 1.7 ozaki route to: 192.168.0.1
122 1.7 ozaki destination: 192.168.0.0
123 1.7 ozaki mask: 255.255.255.0
124 1.7 ozaki gateway: 10.0.0.1
125 1.7 ozaki local addr: 10.0.0.10
126 1.7 ozaki interface: shmif0
127 1.7 ozaki flags: <UP,GATEWAY,DONE,STATIC>
128 1.7 ozaki recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
129 1.7 ozaki EOF
130 1.7 ozaki rump.route -n get 192.168.0.1 > ./output
131 1.7 ozaki $DEBUG && cat ./expect ./output
132 1.7 ozaki sed -i '$d' ./output
133 1.7 ozaki atf_check -s exit:0 diff ./expect ./output
134 1.7 ozaki
135 1.7 ozaki # Change the local address of the route
136 1.7 ozaki atf_check -s exit:0 -o ignore \
137 1.7 ozaki rump.route change -net 192.168.0.0/24 10.0.0.1 -ifa 10.0.0.11
138 1.7 ozaki $DEBUG && rump.route -n show -inet
139 1.7 ozaki cat >./expect <<-EOF
140 1.7 ozaki route to: 192.168.0.1
141 1.7 ozaki destination: 192.168.0.0
142 1.7 ozaki mask: 255.255.255.0
143 1.7 ozaki gateway: 10.0.0.1
144 1.7 ozaki local addr: 10.0.0.11
145 1.7 ozaki interface: shmif0
146 1.7 ozaki flags: <UP,GATEWAY,DONE,STATIC>
147 1.7 ozaki recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
148 1.7 ozaki EOF
149 1.7 ozaki rump.route -n get 192.168.0.1 > ./output
150 1.7 ozaki $DEBUG && cat ./expect ./output
151 1.7 ozaki sed -i '$d' ./output
152 1.7 ozaki atf_check -s exit:0 diff ./expect ./output
153 1.7 ozaki }
154 1.7 ozaki
155 1.7 ozaki route_change_ifa_cleanup()
156 1.7 ozaki {
157 1.7 ozaki
158 1.7 ozaki env RUMP_SERVER=unix://commsock rump.halt
159 1.7 ozaki }
160 1.7 ozaki
161 1.7 ozaki atf_test_case route_change_ifp cleanup
162 1.7 ozaki route_change_ifp_head()
163 1.7 ozaki {
164 1.7 ozaki
165 1.7 ozaki atf_set "descr" "Change a route based on an interface (ifp)"
166 1.7 ozaki atf_set "require.progs" "rump_server"
167 1.7 ozaki }
168 1.7 ozaki
169 1.7 ozaki route_change_ifp_body()
170 1.7 ozaki {
171 1.7 ozaki
172 1.7 ozaki atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
173 1.7 ozaki
174 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 create
175 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 linkstr bus
176 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 10.0.0.10/24 up
177 1.7 ozaki
178 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif1 create
179 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif1 linkstr bus
180 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif1 10.0.0.11/24 up
181 1.7 ozaki
182 1.7 ozaki atf_check -s exit:0 -o ignore \
183 1.7 ozaki rump.route add -net 192.168.0.0/24 10.0.0.1
184 1.7 ozaki atf_check -s exit:0 -o match:'10.0.0.1' -x \
185 1.7 ozaki "rump.route -n show -inet | grep ^192.168"
186 1.7 ozaki $DEBUG && rump.route -n show -inet
187 1.7 ozaki cat >./expect <<-EOF
188 1.7 ozaki route to: 192.168.0.1
189 1.7 ozaki destination: 192.168.0.0
190 1.7 ozaki mask: 255.255.255.0
191 1.7 ozaki gateway: 10.0.0.1
192 1.7 ozaki local addr: 10.0.0.10
193 1.7 ozaki interface: shmif0
194 1.7 ozaki flags: <UP,GATEWAY,DONE,STATIC>
195 1.7 ozaki recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
196 1.7 ozaki EOF
197 1.7 ozaki rump.route -n get 192.168.0.1 > ./output
198 1.7 ozaki $DEBUG && cat ./expect ./output
199 1.7 ozaki sed -i '$d' ./output
200 1.7 ozaki atf_check -s exit:0 diff ./expect ./output
201 1.7 ozaki
202 1.7 ozaki # Change a route based on an interface
203 1.7 ozaki atf_check -s exit:0 -o ignore \
204 1.7 ozaki rump.route change -net 192.168.0.0/24 10.0.0.1 -ifp shmif1
205 1.7 ozaki $DEBUG && rump.route -n show -inet
206 1.7 ozaki cat >./expect <<-EOF
207 1.7 ozaki route to: 192.168.0.1
208 1.7 ozaki destination: 192.168.0.0
209 1.7 ozaki mask: 255.255.255.0
210 1.7 ozaki gateway: 10.0.0.1
211 1.7 ozaki local addr: 10.0.0.11
212 1.7 ozaki interface: shmif1
213 1.7 ozaki flags: <UP,GATEWAY,DONE,STATIC>
214 1.7 ozaki recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
215 1.7 ozaki EOF
216 1.7 ozaki rump.route -n get 192.168.0.1 > ./output
217 1.7 ozaki $DEBUG && cat ./expect ./output
218 1.7 ozaki sed -i '$d' ./output
219 1.7 ozaki atf_check -s exit:0 diff ./expect ./output
220 1.7 ozaki }
221 1.7 ozaki
222 1.7 ozaki route_change_ifp_cleanup()
223 1.7 ozaki {
224 1.7 ozaki
225 1.7 ozaki env RUMP_SERVER=unix://commsock rump.halt
226 1.7 ozaki }
227 1.7 ozaki
228 1.7 ozaki atf_test_case route_change_ifp_ifa cleanup
229 1.7 ozaki route_change_ifp_head()
230 1.7 ozaki {
231 1.7 ozaki
232 1.7 ozaki atf_set "descr" "Change a route with -ifp and -ifa"
233 1.7 ozaki atf_set "require.progs" "rump_server"
234 1.7 ozaki }
235 1.7 ozaki
236 1.7 ozaki route_change_ifp_ifa_body()
237 1.7 ozaki {
238 1.7 ozaki
239 1.7 ozaki atf_check -s exit:0 ${netserver} ${RUMP_SERVER}
240 1.7 ozaki
241 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 create
242 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 linkstr bus
243 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif0 10.0.0.10/24 up
244 1.7 ozaki
245 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif1 create
246 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif1 linkstr bus
247 1.7 ozaki atf_check -s exit:0 rump.ifconfig shmif1 10.0.0.11/24 up
248 1.7 ozaki
249 1.7 ozaki atf_check -s exit:0 -o ignore \
250 1.7 ozaki rump.route add -net 192.168.0.0/24 10.0.0.1
251 1.7 ozaki atf_check -s exit:0 -o match:'10.0.0.1' -x \
252 1.7 ozaki "rump.route -n show -inet | grep ^192.168"
253 1.7 ozaki $DEBUG && rump.route -n show -inet
254 1.7 ozaki cat >./expect <<-EOF
255 1.7 ozaki route to: 192.168.0.1
256 1.7 ozaki destination: 192.168.0.0
257 1.7 ozaki mask: 255.255.255.0
258 1.7 ozaki gateway: 10.0.0.1
259 1.7 ozaki local addr: 10.0.0.10
260 1.7 ozaki interface: shmif0
261 1.7 ozaki flags: <UP,GATEWAY,DONE,STATIC>
262 1.7 ozaki recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
263 1.7 ozaki EOF
264 1.7 ozaki rump.route -n get 192.168.0.1 > ./output
265 1.7 ozaki $DEBUG && cat ./expect ./output
266 1.7 ozaki sed -i '$d' ./output
267 1.7 ozaki atf_check -s exit:0 diff ./expect ./output
268 1.7 ozaki
269 1.7 ozaki # Change a route with -ifa and -ifp
270 1.7 ozaki atf_check -s exit:0 -o ignore \
271 1.7 ozaki rump.route change -net 192.168.0.0/24 -ifa 10.0.0.1 -ifp shmif1
272 1.7 ozaki $DEBUG && rump.route -n show -inet
273 1.7 ozaki cat >./expect <<-EOF
274 1.7 ozaki route to: 192.168.0.1
275 1.7 ozaki destination: 192.168.0.0
276 1.7 ozaki mask: 255.255.255.0
277 1.7 ozaki gateway: 10.0.0.1
278 1.7 ozaki local addr: 10.0.0.11
279 1.7 ozaki interface: shmif1
280 1.7 ozaki flags: <UP,GATEWAY,DONE,STATIC>
281 1.7 ozaki recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
282 1.7 ozaki EOF
283 1.7 ozaki rump.route -n get 192.168.0.1 > ./output
284 1.7 ozaki $DEBUG && cat ./expect ./output
285 1.7 ozaki sed -i '$d' ./output
286 1.7 ozaki atf_check -s exit:0 diff ./expect ./output
287 1.7 ozaki }
288 1.7 ozaki
289 1.7 ozaki route_change_ifp_ifa_cleanup()
290 1.7 ozaki {
291 1.7 ozaki
292 1.7 ozaki env RUMP_SERVER=unix://commsock rump.halt
293 1.7 ozaki }
294 1.7 ozaki
295 1.1 pooka atf_init_test_cases()
296 1.1 pooka {
297 1.1 pooka
298 1.5 ozaki atf_add_test_case route_change_reject2blackhole
299 1.7 ozaki atf_add_test_case route_change_gateway
300 1.7 ozaki atf_add_test_case route_change_ifa
301 1.7 ozaki atf_add_test_case route_change_ifp
302 1.7 ozaki atf_add_test_case route_change_ifp_ifa
303 1.1 pooka }
304