Add tests for bridge members with an IP address

The tests include checks for PR#48104 which is not fixed yet.

Note that one test unexpectedly fails for some reason
(unrelated to PR#48104). We have to fix it somehow.
This commit is contained in:
ozaki-r 2015-06-09 00:39:53 +00:00
parent 3b04b253c2
commit 978c966b4f
1 changed files with 139 additions and 1 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: t_bridge.sh,v 1.7 2015/05/29 10:08:52 ozaki-r Exp $
# $NetBSD: t_bridge.sh,v 1.8 2015/06/09 00:39:53 ozaki-r Exp $
#
# Copyright (c) 2014 The NetBSD Foundation, Inc.
# All rights reserved.
@ -35,6 +35,10 @@ IP1=10.0.0.1
IP2=10.0.0.2
IP61=fc00::1
IP62=fc00::2
IPBR1=10.0.0.11
IPBR2=10.0.0.12
IP6BR1=fc00::11
IP6BR2=fc00::12
TIMEOUT=5
@ -60,6 +64,18 @@ rtable_head()
atf_set "require.progs" "rump_server"
}
member_ip_head()
{
atf_set "descr" "Tests if_bridge with members with an IP address"
atf_set "require.progs" "rump_server"
}
member_ip6_head()
{
atf_set "descr" "Tests if_bridge with members with an IP address (IPv6)"
atf_set "require.progs" "rump_server"
}
setup_endpoint()
{
sock=${1}
@ -175,6 +191,32 @@ setup_bridge()
rump.ifconfig shmif1
}
setup_member_ip()
{
export RUMP_SERVER=$SOCK2
export LD_PRELOAD=/usr/lib/librumphijack.so
atf_check -s exit:0 rump.ifconfig shmif0 $IPBR1/24
atf_check -s exit:0 rump.ifconfig shmif1 $IPBR2/24
atf_check -s exit:0 rump.ifconfig -w 10
/sbin/brconfig bridge0
unset LD_PRELOAD
rump.ifconfig shmif0
rump.ifconfig shmif1
}
setup_member_ip6()
{
export RUMP_SERVER=$SOCK2
export LD_PRELOAD=/usr/lib/librumphijack.so
atf_check -s exit:0 rump.ifconfig shmif0 inet6 $IP6BR1
atf_check -s exit:0 rump.ifconfig shmif1 inet6 $IP6BR2
atf_check -s exit:0 rump.ifconfig -w 10
/sbin/brconfig bridge0
unset LD_PRELOAD
rump.ifconfig shmif0
rump.ifconfig shmif1
}
teardown_bridge()
{
export RUMP_SERVER=$SOCK2
@ -269,6 +311,49 @@ test_ping6_success()
rump.ifconfig -v shmif0
}
test_ping_member()
{
export RUMP_SERVER=$SOCK1
rump.ifconfig -v shmif0
atf_check -s exit:0 -o ignore rump.ping -q -n -w $TIMEOUT -c 1 $IPBR1
rump.ifconfig -v shmif0
# It's known to fail. See PR#48104
atf_check -s not-exit:0 -o ignore rump.ping -q -n -w $TIMEOUT -c 1 $IPBR2
rump.ifconfig -v shmif0
export RUMP_SERVER=$SOCK3
rump.ifconfig -v shmif0
# It's known to fail. See PR#48104
atf_check -s not-exit:0 -o ignore rump.ping -q -n -w $TIMEOUT -c 1 $IPBR1
rump.ifconfig -v shmif0
atf_check -s exit:0 -o ignore rump.ping -q -n -w $TIMEOUT -c 1 $IPBR2
rump.ifconfig -v shmif0
}
test_ping6_member()
{
export LD_PRELOAD=/usr/lib/librumphijack.so
export RUMP_SERVER=$SOCK1
rump.ifconfig -v shmif0
atf_check -s exit:0 -o ignore ping6 -q -n -X $TIMEOUT -c 1 $IP6BR1
rump.ifconfig -v shmif0
# It's known to fail. See PR#48104
atf_check -s not-exit:0 -o ignore ping6 -q -n -X $TIMEOUT -c 1 $IP6BR2
rump.ifconfig -v shmif0
export RUMP_SERVER=$SOCK3
rump.ifconfig -v shmif0
# It's known to fail. See PR#48104
atf_check -s not-exit:0 -o ignore ping6 -q -n -X $TIMEOUT -c 1 $IP6BR1
rump.ifconfig -v shmif0
# FIXME: it doesn't work for some reason
atf_check -s exit:0 -o ignore ping6 -q -n -X $TIMEOUT -c 1 $IP6BR2
rump.ifconfig -v shmif0
unset LD_PRELOAD
}
get_number_of_caches()
{
export RUMP_SERVER=$SOCK2
@ -435,6 +520,45 @@ rtable_body()
# wait here so long. Should we have a sysctl to change the period?
}
member_ip_body()
{
setup
test_setup
# Enable once PR kern/49219 is fixed
#test_ping_failure
setup_bridge
sleep 1
test_setup_bridge
test_ping_success
setup_member_ip
test_ping_member
teardown_bridge
test_ping_failure
}
member_ip6_body()
{
setup6
test_setup6
test_ping6_failure
setup_bridge
sleep 1
test_setup_bridge
test_ping6_success
setup_member_ip6
test_ping6_member
teardown_bridge
test_ping6_failure
}
basic_cleanup()
{
dump_bus
@ -453,9 +577,23 @@ rtable_cleanup()
cleanup
}
member_ip_cleanup()
{
dump_bus
cleanup
}
member_ip6_cleanup()
{
dump_bus
cleanup
}
atf_init_test_cases()
{
atf_add_test_case basic
atf_add_test_case basic6
atf_add_test_case rtable
atf_add_test_case member_ip
atf_add_test_case member_ip6
}