1# $NetBSD: t_ifconfig.sh,v 1.22 2021/08/17 22:00:33 andvar Exp $ 2# 3# Copyright (c) 2015 The NetBSD Foundation, Inc. 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions 8# are met: 9# 1. Redistributions of source code must retain the above copyright 10# notice, this list of conditions and the following disclaimer. 11# 2. Redistributions in binary form must reproduce the above copyright 12# notice, this list of conditions and the following disclaimer in the 13# documentation and/or other materials provided with the distribution. 14# 15# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 16# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 17# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 18# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 19# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 20# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 21# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 24# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25# POSSIBILITY OF SUCH DAMAGE. 26# 27 28RUMP_SERVER1=unix://./r1 29RUMP_SERVER2=unix://./r2 30 31RUMP_FLAGS=\ 32"-lrumpnet -lrumpnet_net -lrumpnet_netinet -lrumpnet_netinet6 -lrumpnet_shmif" 33RUMP_FLAGS="${RUMP_FLAGS}" 34 35TIMEOUT=3 36 37anycast="[Aa][Nn][Yy][Cc][Aa][Ss][Tt]" 38deprecated="[Dd][Ee][Pp][Rr][Ee][Cc][Aa][Tt][Ee][Dd]" 39 40atf_test_case ifconfig_create_destroy cleanup 41ifconfig_create_destroy_head() 42{ 43 44 atf_set "descr" "tests of ifconfig create and destroy" 45 atf_set "require.progs" "rump_server" 46} 47 48ifconfig_create_destroy_body() 49{ 50 atf_check -s exit:0 rump_server ${RUMP_FLAGS} ${RUMP_SERVER1} 51 52 export RUMP_SERVER=${RUMP_SERVER1} 53 54 # Create and destroy (no address) 55 atf_check -s exit:0 rump.ifconfig shmif0 create 56 atf_check -s exit:0 rump.ifconfig shmif0 destroy 57 58 # Create and destroy (with an IPv4 address) 59 atf_check -s exit:0 rump.ifconfig shmif0 create 60 atf_check -s exit:0 rump.ifconfig shmif0 linkstr shmbus 61 atf_check -s exit:0 rump.ifconfig shmif0 192.168.0.1/24 62 atf_check -s exit:0 rump.ifconfig shmif0 up 63 atf_check -s exit:0 rump.ifconfig shmif0 destroy 64 65 # Create and destroy (with an IPv6 address) 66 atf_check -s exit:0 rump.ifconfig shmif0 create 67 atf_check -s exit:0 rump.ifconfig shmif0 linkstr shmbus 68 atf_check -s exit:0 rump.ifconfig shmif0 inet6 fc00::1 69 atf_check -s exit:0 rump.ifconfig shmif0 up 70 atf_check -s exit:0 rump.ifconfig shmif0 destroy 71 72 # Check if ifconfig (ioctl) works after a failure of ifconfig destroy 73 atf_check -s exit:0 -o ignore rump.ifconfig lo0 74 atf_check -s not-exit:0 -e ignore rump.ifconfig lo0 destroy 75 atf_check -s exit:0 -o ignore rump.ifconfig lo0 76 77 unset RUMP_SERVER 78} 79 80ifconfig_create_destroy_cleanup() 81{ 82 83 RUMP_SERVER=${RUMP_SERVER1} rump.halt 84} 85 86atf_test_case ifconfig_options cleanup 87ifconfig_options_head() 88{ 89 90 atf_set "descr" "tests of ifconfig options" 91 atf_set "require.progs" "rump_server" 92} 93 94ifconfig_options_body() 95{ 96 97 export RUMP_SERVER=${RUMP_SERVER1} 98 atf_check -s exit:0 rump_server $RUMP_FLAGS $RUMP_SERVER1 99 100 atf_check -s exit:0 -o ignore rump.ifconfig shmif0 create 101 atf_check -s exit:0 -o ignore rump.ifconfig shmif0 linkstr bus1 102 atf_check -s exit:0 -o ignore rump.ifconfig shmif0 inet 10.0.0.1/24 103 atf_check -s exit:0 -o ignore rump.ifconfig shmif0 inet6 fc00::1/64 104 atf_check -s exit:0 -o ignore rump.ifconfig shmif0 up 105 atf_check -s exit:0 -o ignore rump.ifconfig -w 10 106 $DEBUG && rump.ifconfig shmif0 107 108 # ifconfig [-N] interface address_family 109 # -N resolves hostnames 110 atf_check -s exit:0 -o match:'inet 127.0.0.1' rump.ifconfig lo0 inet 111 atf_check -s exit:0 -o match:'inet localhost' rump.ifconfig -N lo0 inet 112 atf_check -s exit:0 -o match:'inet6 ::1' rump.ifconfig lo0 inet6 113 atf_check -s exit:0 -o match:'inet6 localhost' rump.ifconfig -N lo0 inet6 114 atf_check -s not-exit:0 -e match:'not supported' rump.ifconfig lo0 atalk 115 atf_check -s not-exit:0 -e match:'not supported' rump.ifconfig -N lo0 atalk 116 atf_check -s exit:0 -o ignore rump.ifconfig lo0 link 117 atf_check -s exit:0 -o ignore rump.ifconfig -N lo0 link 118 119 # ifconfig [-hLmNvz] interface 120 # -h -v shows statistics in human readable format 121 atf_check -s exit:0 -o ignore rump.ifconfig -h -v lo0 122 # -L shows IPv6 lifetime 123 atf_check -s exit:0 -o ignore rump.ifconfig shmif0 inet6 fc00::2 \ 124 pltime 100 125 $DEBUG && rump.ifconfig -L shmif0 126 atf_check -s exit:0 -o match:'pltime' rump.ifconfig -L shmif0 127 atf_check -s exit:0 -o match:'vltime' rump.ifconfig -L shmif0 128 # -m shows all of the supported media (not supported in shmif) 129 $DEBUG && rump.ifconfig -m shmif0 130 atf_check -s exit:0 -o ignore rump.ifconfig -m shmif0 131 atf_check -s exit:0 -o match:'localhost' rump.ifconfig -N lo0 132 atf_check -s exit:0 -o match:'0 packets' rump.ifconfig -v lo0 133 atf_check -s exit:0 -o ignore rump.ping -c 1 -w $TIMEOUT localhost 134 # -z clears and shows statistics at that point 135 atf_check -s exit:0 -o match:'2 packets' rump.ifconfig -z lo0 136 atf_check -s exit:0 -o match:'0 packets' rump.ifconfig -v lo0 137 138 # ifconfig -a [-bdhLNmsuvz] 139 # -a shows all interfaces in the system 140 $DEBUG && rump.ifconfig -a 141 atf_check -s exit:0 -o match:'shmif0' -o match:'lo0' rump.ifconfig -a 142 # -a -b shows only broadcast interfaces 143 atf_check -s exit:0 -o match:'shmif0' -o not-match:'lo0' rump.ifconfig -a -b 144 # -a -d shows only down interfaces 145 atf_check -s exit:0 -o ignore rump.ifconfig shmif0 down 146 atf_check -s exit:0 -o match:'shmif0' rump.ifconfig -a -d 147 atf_check -s exit:0 -o ignore rump.ifconfig shmif0 up 148 atf_check -s exit:0 -o not-match:'shmif0' rump.ifconfig -a -d 149 atf_check -s exit:0 -o match:'pltime' rump.ifconfig -a -L 150 atf_check -s exit:0 -o match:'vltime' rump.ifconfig -a -L 151 atf_check -s exit:0 -o match:'localhost' rump.ifconfig -a -N 152 atf_check -s exit:0 -o ignore rump.ifconfig -a -m 153 # -a -s shows only interfaces connected to a network 154 # (shmif is always connected) 155 $DEBUG && rump.ifconfig -a -s 156 atf_check -s exit:0 -o ignore rump.ifconfig -a -s 157 # -a -u shows only up interfaces 158 atf_check -s exit:0 -o match:'shmif0' rump.ifconfig -a -u 159 atf_check -s exit:0 -o ignore rump.ifconfig shmif0 down 160 atf_check -s exit:0 -o not-match:'shmif0' rump.ifconfig -a -u 161 atf_check -s exit:0 -o ignore rump.ifconfig shmif0 up 162 atf_check -s exit:0 -o match:'0 packets' rump.ifconfig -a -v 163 atf_check -s exit:0 -o ignore rump.ping -c 1 -w $TIMEOUT localhost 164 atf_check -s exit:0 -o ignore rump.ifconfig shmif0 down 165 atf_check -s exit:0 -o match:'2 packets' rump.ifconfig -a -z 166 atf_check -s exit:0 -o not-match:'2 packets' rump.ifconfig -a -v 167 atf_check -s exit:0 -o match:'0 packets' rump.ifconfig -a -v 168 atf_check -s exit:0 -o ignore rump.ifconfig shmif0 up 169 170 # ifconfig -l [-bdsu] 171 # -l shows only interface names 172 atf_check -s exit:0 -o match:'lo0' rump.ifconfig -l 173 atf_check -s exit:0 -o match:'shmif0' rump.ifconfig -l 174 atf_check -s exit:0 -o match:'shmif0' rump.ifconfig -l -b 175 atf_check -s exit:0 -o not-match:'lo0' rump.ifconfig -l -b 176 atf_check -s exit:0 -o ignore rump.ifconfig -l -d 177 atf_check -s exit:0 -o match:'lo0' rump.ifconfig -l -s 178 atf_check -s exit:0 -o match:'shmif0' rump.ifconfig -l -s 179 atf_check -s exit:0 -o match:'lo0' rump.ifconfig -l -u 180 atf_check -s exit:0 -o match:'shmif0' rump.ifconfig -l -u 181 182 # ifconfig -s interface 183 # -s interface exists with 0 / 1 if connected / disconnected 184 atf_check -s exit:0 -o empty rump.ifconfig -s lo0 185 atf_check -s exit:0 -o empty rump.ifconfig -s shmif0 186 187 # ifconfig -C 188 # -C shows all of the interface cloners available on the system 189 atf_check -s exit:0 -o match:'shmif carp lo' rump.ifconfig -C 190 191 unset RUMP_SERVER 192} 193 194ifconfig_options_cleanup() 195{ 196 197 env RUMP_SERVER=${RUMP_SERVER1} rump.halt 198} 199 200 201atf_test_case ifconfig_parameters cleanup 202ifconfig_parameters_head() 203{ 204 atf_set "descr" "tests of interface parameters" 205 atf_set "require.progs" "rump_server" 206} 207 208ifconfig_parameters_body() 209{ 210 local interval= 211 212 atf_check -s exit:0 rump_server ${RUMP_FLAGS} ${RUMP_SERVER1} 213 atf_check -s exit:0 rump_server ${RUMP_FLAGS} ${RUMP_SERVER2} 214 215 export RUMP_SERVER=${RUMP_SERVER1} 216 atf_check -s exit:0 rump.ifconfig shmif0 create 217 atf_check -s exit:0 rump.ifconfig shmif0 linkstr shmbus 218 atf_check -s exit:0 rump.ifconfig shmif0 192.168.0.1/24 219 atf_check -s exit:0 rump.ifconfig shmif0 up 220 unset RUMP_SERVER 221 222 export RUMP_SERVER=${RUMP_SERVER2} 223 atf_check -s exit:0 rump.ifconfig shmif0 create 224 atf_check -s exit:0 rump.ifconfig shmif0 linkstr shmbus 225 atf_check -s exit:0 rump.ifconfig shmif0 192.168.0.2/24 226 atf_check -s exit:0 rump.ifconfig shmif0 inet 192.168.0.3/24 alias 227 atf_check -s exit:0 rump.ifconfig shmif0 up 228 unset RUMP_SERVER 229 230 export RUMP_SERVER=${RUMP_SERVER1} 231 232 # active 233 atf_check -s exit:0 rump.ifconfig shmif0 link b2:a0:75:00:00:01 active 234 atf_check -s exit:0 -o match:'address:.b2:a0:75:00:00:01' \ 235 rump.ifconfig shmif0 236 # down, up 237 atf_check -s exit:0 rump.ifconfig shmif0 down 238 atf_check -s not-exit:0 -o ignore -e ignore rump.ping -c 1 \ 239 -w $TIMEOUT -n 192.168.0.2 240 atf_check -s exit:0 rump.ifconfig shmif0 up 241 atf_check -s exit:0 rump.ifconfig -w 10 242 atf_check -s exit:0 -o ignore rump.ping -c 1 -w $TIMEOUT -n 192.168.0.2 243 244 # alias 245 atf_check -s exit:0 rump.ifconfig shmif0 inet 192.168.1.1/24 alias 246 atf_check -s exit:0 -o match:'192.168.1.1/24' rump.ifconfig shmif0 247 atf_check -s exit:0 rump.ifconfig shmif0 inet 192.168.1.1/24 -alias 248 atf_check -s exit:0 -o not-match:'192.168.1.1/24' rump.ifconfig shmif0 249 atf_check -s exit:0 rump.ifconfig shmif0 inet6 fc00::1 250 atf_check -s exit:0 rump.ifconfig shmif0 inet6 fc00::2 251 atf_check -s exit:0 -o match:'fc00::1' rump.ifconfig shmif0 inet6 252 atf_check -s exit:0 -o match:'fc00::2' rump.ifconfig shmif0 inet6 253 254 # delete 255 atf_check -s exit:0 rump.ifconfig shmif0 inet 192.168.1.1 alias 256 atf_check -s exit:0 rump.ifconfig shmif0 inet 192.168.1.1 delete 257 atf_check -s exit:0 -o not-match:'192.168.1.1' rump.ifconfig shmif0 inet 258 atf_check -s exit:0 rump.ifconfig shmif0 inet 192.168.0.1 delete 259 atf_check -s exit:0 -o not-match:'192.168.0.1' rump.ifconfig shmif0 inet 260 atf_check -s exit:0 rump.ifconfig shmif0 inet6 fc00::1 delete 261 atf_check -s exit:0 rump.ifconfig shmif0 inet6 fc00::2 delete 262 atf_check -s exit:0 -o not-match:'fc00::1' rump.ifconfig shmif0 inet6 263 atf_check -s exit:0 -o not-match:'fc00::2' rump.ifconfig shmif0 inet6 264 # can delete inactive link 265 atf_check -s exit:0 rump.ifconfig shmif0 link b2:a0:75:00:00:02 266 atf_check -s exit:0 rump.ifconfig shmif0 link b2:a0:75:00:00:02 delete 267 # cannot delete active link 268 atf_check -s not-exit:0 -e match:'SIOCDLIFADDR: Device busy' \ 269 rump.ifconfig shmif0 link b2:a0:75:00:00:01 delete 270 271 atf_check -s exit:0 rump.ifconfig shmif0 inet 192.168.0.1/24 272 273 # arp 274 atf_check -s exit:0 rump.ifconfig shmif0 -arp 275 atf_check -s not-exit:0 -o ignore -e ignore \ 276 rump.ping -c 1 -w $TIMEOUT -n 192.168.0.3 277 atf_check -s exit:0 -o not-match:'192.168.0.3' rump.arp -an 278 # The entry shouldn't appear in the routing table anymore 279 atf_check -s exit:0 -o not-match:'192.168.0.3' rump.netstat -nr 280 281 # netmask 282 atf_check -s exit:0 rump.ifconfig shmif0 inet 172.16.0.1 netmask 255.255.255.0 alias 283 atf_check -s exit:0 -o match:'172.16.0/24' rump.netstat -rn -f inet 284 atf_check -s exit:0 rump.ifconfig shmif0 inet 172.16.0.1 delete 285 286 # broadcast (does it not work?) 287 atf_check -s exit:0 rump.ifconfig shmif0 inet 172.16.0.1 \ 288 broadcast 255.255.255.255 alias 289 atf_check -s exit:0 -o match:'broadcast 255.255.255.255' \ 290 rump.ifconfig shmif0 inet 291 292 # metric (external only) 293 atf_check -s exit:0 rump.ifconfig shmif0 metric 10 294 atf_check -s exit:0 rump.ifconfig shmif0 metric 0 295 296 # prefixlen 297 atf_check -s exit:0 rump.ifconfig shmif0 inet6 fc00::1 prefixlen 70 298 atf_check -s exit:0 -o match:'fc00::/70' rump.netstat -rn -f inet6 299 300 # anycast 301 atf_check -s exit:0 rump.ifconfig shmif0 inet6 fc00::2 anycast 302 atf_check -s exit:0 -o match:"fc00::2.+$anycast" rump.ifconfig shmif0 inet6 303 304 # deprecated 305 atf_check -s exit:0 rump.ifconfig shmif0 inet6 fc00::3 deprecated 306 # Not deprecated immediately. Need to wait nd6_timer that does it is scheduled. 307 interval=$(sysctl -n net.inet6.icmp6.nd6_prune) 308 atf_check -s exit:0 sleep $((interval + 1)) 309 atf_check -s exit:0 -o match:"fc00::3.+$deprecated" rump.ifconfig shmif0 inet6 310 atf_check -s exit:0 rump.ifconfig shmif0 inet6 fc00::3 -deprecated 311 atf_check -s exit:0 -o not-match:"fc00::3.+$deprecated" rump.ifconfig shmif0 inet6 312 313 # pltime 314 atf_check -s exit:0 rump.ifconfig shmif0 inet6 fc00::3 pltime 3 315 atf_check -s exit:0 -o not-match:"fc00::3.+$deprecated" rump.ifconfig shmif0 inet6 316 atf_check -s exit:0 sleep 5 317 atf_check -s exit:0 -o match:"fc00::3.+$deprecated" rump.ifconfig shmif0 inet6 318 319 # eui64 320 atf_check -s exit:0 rump.ifconfig shmif0 inet6 fc00:1::0 eui64 321 atf_check -s exit:0 -o match:'fc00:1::' rump.ifconfig shmif0 inet6 322 323 unset RUMP_SERVER 324} 325 326ifconfig_parameters_cleanup() 327{ 328 env RUMP_SERVER=${RUMP_SERVER1} rump.halt 329 env RUMP_SERVER=${RUMP_SERVER2} rump.halt 330} 331 332ifconfig_up_down_common() 333{ 334 local family=$1 335 local ip=$2 336 337 if [ $family = inet6 ]; then 338 rump_server_start $RUMP_SERVER1 netinet6 339 else 340 rump_server_start $RUMP_SERVER1 341 fi 342 rump_server_add_iface $RUMP_SERVER1 shmif0 bus1 343 344 export RUMP_SERVER=$RUMP_SERVER1 345 rump.ifconfig shmif0 346 347 # Set the same number of trials to make the following test 348 # work for both IPv4 and IPv6 349 if [ $family = inet6 ]; then 350 atf_check -s exit:0 -o ignore \ 351 rump.sysctl -w net.inet6.ip6.dad_count=5 352 else 353 atf_check -s exit:0 -o ignore \ 354 rump.sysctl -w net.inet.ip.dad_count=5 355 fi 356 357 # 358 # Assign an address and up the interface at once 359 # 360 atf_check -s exit:0 rump.ifconfig shmif0 $family $ip/24 up 361 # UP 362 atf_check -s exit:0 \ 363 -o match:'shmif0.*UP.*RUNNING' rump.ifconfig shmif0 364 # The address is TENTATIVE 365 atf_check -s exit:0 \ 366 -o match:"$ip.*TENTATIVE" rump.ifconfig shmif0 367 # Waiting for DAD completion 368 atf_check -s exit:0 rump.ifconfig -w 10 369 # The address left TENTATIVE 370 atf_check -s exit:0 \ 371 -o not-match:"$ip.*TENTATIVE" rump.ifconfig shmif0 372 373 # 374 # ifconfig down 375 # 376 atf_check -s exit:0 rump.ifconfig shmif0 down 377 atf_check -s exit:0 \ 378 -o not-match:'shmif0.*UP.*RUNNING' rump.ifconfig shmif0 379 # The address becomes DETATCHED 380 atf_check -s exit:0 \ 381 -o match:"$ip.*DETACHED" rump.ifconfig shmif0 382 # ifconfig up 383 atf_check -s exit:0 rump.ifconfig shmif0 up 384 # The address becomes TENTATIVE 385 atf_check -s exit:0 \ 386 -o match:"$ip.*TENTATIVE" rump.ifconfig shmif0 387 # Waiting for DAD completion 388 atf_check -s exit:0 rump.ifconfig -w 10 389 # The address left TENTATIVE 390 atf_check -s exit:0 \ 391 -o not-match:"$ip.*TENTATIVE" rump.ifconfig shmif0 392 393 # Clean up 394 atf_check -s exit:0 rump.ifconfig shmif0 $family $ip delete 395 396 # 397 # Assign an address 398 # 399 atf_check -s exit:0 rump.ifconfig shmif0 $family $ip/24 400 # UP automatically 401 atf_check -s exit:0 \ 402 -o match:'shmif0.*UP.*RUNNING' rump.ifconfig shmif0 403 # Need some delay 404 sleep 1 405 # The IP becomes TENTATIVE 406 atf_check -s exit:0 \ 407 -o match:"$ip.*TENTATIVE" rump.ifconfig shmif0 408 # Waiting for DAD completion 409 atf_check -s exit:0 rump.ifconfig -w 10 410 # The address left TENTATIVE 411 atf_check -s exit:0 \ 412 -o not-match:"$ip.*TENTATIVE" rump.ifconfig shmif0 413 414 rump_server_destroy_ifaces 415} 416 417atf_test_case ifconfig_up_down_ipv4 cleanup 418ifconfig_up_down_ipv4_head() 419{ 420 atf_set "descr" "tests of interface up/down (IPv4)" 421 atf_set "require.progs" "rump_server" 422} 423 424ifconfig_up_down_ipv4_body() 425{ 426 427 ifconfig_up_down_common inet 10.0.0.1 428} 429 430ifconfig_up_down_ipv4_cleanup() 431{ 432 433 $DEBUG && dump 434 cleanup 435} 436 437atf_test_case ifconfig_up_down_ipv6 cleanup 438ifconfig_up_down_ipv6_head() 439{ 440 atf_set "descr" "tests of interface up/down (IPv6)" 441 atf_set "require.progs" "rump_server" 442} 443 444ifconfig_up_down_ipv6_body() 445{ 446 447 ifconfig_up_down_common inet6 fc00::1 448} 449 450ifconfig_up_down_ipv6_cleanup() 451{ 452 453 $DEBUG && dump 454 cleanup 455} 456 457atf_test_case ifconfig_number cleanup 458ifconfig_number_head() 459{ 460 atf_set "descr" "tests of passing a number (if_index) to ifconfig" 461 atf_set "require.progs" "rump_server" 462} 463 464ifconfig_number_body() 465{ 466 467 rump_server_start $RUMP_SERVER1 468 rump_server_add_iface $RUMP_SERVER1 shmif0 bus1 469 470 export RUMP_SERVER=$RUMP_SERVER1 471 atf_check -s not-exit:0 -e match:'Device not configured' rump.ifconfig 0 472 atf_check -s exit:0 rump.ifconfig 1 # lo0 473 atf_check -s exit:0 rump.ifconfig 2 # shmif0 474 atf_check -s not-exit:0 -e match:'Device not configured' rump.ifconfig 3 475 476 rump_server_destroy_ifaces 477} 478 479ifconfig_number_cleanup() 480{ 481 482 $DEBUG && dump 483 cleanup 484} 485 486atf_test_case ifconfig_description cleanup 487ifconfig_description_head() 488{ 489 atf_set "descr" "tests of setting and unsetting interface description" 490 atf_set "require.progs" "rump_server" 491} 492 493ifconfig_description_body() 494{ 495 496 rump_server_start $RUMP_SERVER1 497 498 export RUMP_SERVER=$RUMP_SERVER1 499 for descr in description descr; do 500 atf_check -s exit:0 rump.ifconfig lo0 $descr DESCRIPTION-TEST 501 atf_check -s exit:0 -o match:"DESCRIPTION-TEST" rump.ifconfig lo0 502 atf_check -s exit:0 rump.ifconfig lo0 $descr DESCRIPTION-TEST-MODIFIED 503 atf_check -s exit:0 -o match:"DESCRIPTION-TEST-MODIFIED" rump.ifconfig lo0 504 atf_check -s exit:0 rump.ifconfig lo0 -$descr 505 atf_check -s exit:0 -o not-match:'DESCRIPTION-TEST-MODIFIED' rump.ifconfig lo0 506 507 atf_check -s exit:0 rump.ifconfig lo0 $descr `printf "%063d" 0` 508 atf_check -s not-exit:0 -e match:"description too long" rump.ifconfig lo0 $descr `printf "%064d" 0` 509 atf_check -s exit:0 rump.ifconfig lo0 $descr "" 510 done 511} 512 513ifconfig_description_cleanup() 514{ 515 516 $DEBUG && dump 517 cleanup 518} 519 520atf_init_test_cases() 521{ 522 523 atf_add_test_case ifconfig_create_destroy 524 atf_add_test_case ifconfig_options 525 atf_add_test_case ifconfig_parameters 526 atf_add_test_case ifconfig_up_down_ipv4 527 atf_add_test_case ifconfig_up_down_ipv6 528 atf_add_test_case ifconfig_number 529 atf_add_test_case ifconfig_description 530} 531