Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Separate tests for learning table of bridge
details: https://anonhg.NetBSD.org/src/rev/25a6eb6d37c8
branches: trunk
changeset: 352026:25a6eb6d37c8
user: ozaki-r <ozaki-r%NetBSD.org@localhost>
date: Sat Mar 11 04:24:52 2017 +0000
description:
Separate tests for learning table of bridge
diffstat:
distrib/sets/lists/tests/mi | 3 +-
tests/net/if_bridge/Makefile | 4 +-
tests/net/if_bridge/t_bridge.sh | 146 +----------------
tests/net/if_bridge/t_rtable.sh | 353 ++++++++++++++++++++++++++++++++++++++++
4 files changed, 358 insertions(+), 148 deletions(-)
diffs (truncated from 586 to 300 lines):
diff -r 3aea127cf4b8 -r 25a6eb6d37c8 distrib/sets/lists/tests/mi
--- a/distrib/sets/lists/tests/mi Sat Mar 11 02:01:10 2017 +0000
+++ b/distrib/sets/lists/tests/mi Sat Mar 11 04:24:52 2017 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.727 2017/03/06 21:03:56 christos Exp $
+# $NetBSD: mi,v 1.728 2017/03/11 04:24:52 ozaki-r Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@@ -3250,6 +3250,7 @@
./usr/tests/net/if_bridge/Atffile tests-net-tests atf,rump
./usr/tests/net/if_bridge/Kyuafile tests-net-tests atf,rump,kyua
./usr/tests/net/if_bridge/t_bridge tests-net-tests atf,rump
+./usr/tests/net/if_bridge/t_rtable tests-net-tests atf,rump
./usr/tests/net/if_gif tests-net-tests compattestfile,atf
./usr/tests/net/if_gif/Atffile tests-net-tests atf,rump
./usr/tests/net/if_gif/Kyuafile tests-net-tests atf,rump,kyua
diff -r 3aea127cf4b8 -r 25a6eb6d37c8 tests/net/if_bridge/Makefile
--- a/tests/net/if_bridge/Makefile Sat Mar 11 02:01:10 2017 +0000
+++ b/tests/net/if_bridge/Makefile Sat Mar 11 04:24:52 2017 +0000
@@ -1,11 +1,11 @@
-# $NetBSD: Makefile,v 1.2 2016/11/24 09:07:09 ozaki-r Exp $
+# $NetBSD: Makefile,v 1.3 2017/03/11 04:24:52 ozaki-r Exp $
#
.include <bsd.own.mk>
TESTSDIR= ${TESTSBASE}/net/if_bridge
-.for name in bridge
+.for name in bridge rtable
TESTS_SH+= t_${name}
TESTS_SH_SRC_t_${name}= ../net_common.sh t_${name}.sh
.endfor
diff -r 3aea127cf4b8 -r 25a6eb6d37c8 tests/net/if_bridge/t_bridge.sh
--- a/tests/net/if_bridge/t_bridge.sh Sat Mar 11 02:01:10 2017 +0000
+++ b/tests/net/if_bridge/t_bridge.sh Sat Mar 11 04:24:52 2017 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: t_bridge.sh,v 1.16 2016/11/25 08:51:16 ozaki-r Exp $
+# $NetBSD: t_bridge.sh,v 1.17 2017/03/11 04:24:52 ozaki-r Exp $
#
# Copyright (c) 2014 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -42,7 +42,6 @@
atf_test_case bridge_ipv4 cleanup
atf_test_case bridge_ipv6 cleanup
-atf_test_case bridge_rtable cleanup
atf_test_case bridge_member_ipv4 cleanup
atf_test_case bridge_member_ipv6 cleanup
@@ -58,12 +57,6 @@
atf_set "require.progs" "rump_server"
}
-bridge_rtable_head()
-{
- atf_set "descr" "Tests route table operations of if_bridge"
- atf_set "require.progs" "rump_server"
-}
-
bridge_member_ipv4_head()
{
atf_set "descr" "Tests if_bridge with members with an IP address"
@@ -319,63 +312,6 @@
rump.ifconfig -v shmif0
}
-get_number_of_caches()
-{
- export RUMP_SERVER=$SOCK2
- export LD_PRELOAD=/usr/lib/librumphijack.so
- echo $(($(/sbin/brconfig bridge0 |grep -A 100 "Address cache" |wc -l) - 1))
- unset LD_PRELOAD
-}
-
-test_brconfig_maxaddr()
-{
- addr1= addr3= n=
-
- # Get MAC addresses of the endpoints.
- addr1=$(get_macaddr $SOCK1 shmif0)
- addr3=$(get_macaddr $SOCK3 shmif0)
-
- # Refill the MAC addresses of the endpoints.
- export RUMP_SERVER=$SOCK1
- atf_check -s exit:0 -o ignore rump.ping -n -w $TIMEOUT -c 1 $IP2
- export RUMP_SERVER=$SOCK2
- export LD_PRELOAD=/usr/lib/librumphijack.so
- /sbin/brconfig bridge0
- atf_check -s exit:0 -o match:"$addr1 shmif0" /sbin/brconfig bridge0
- atf_check -s exit:0 -o match:"$addr3 shmif1" /sbin/brconfig bridge0
-
- # Check the default # of caches is 100
- atf_check -s exit:0 -o match:"max cache: 100" /sbin/brconfig bridge0
-
- # Test two MAC addresses are cached
- n=$(get_number_of_caches)
- atf_check_equal $n 2
-
- # Limit # of caches to one
- atf_check -s exit:0 -o ignore /sbin/brconfig bridge0 maxaddr 1
- atf_check -s exit:0 -o match:"max cache: 1" /sbin/brconfig bridge0
- /sbin/brconfig bridge0
-
- # Test just one address is cached
- n=$(get_number_of_caches)
- atf_check_equal $n 1
-
- # Increase # of caches to two
- atf_check -s exit:0 -o ignore /sbin/brconfig bridge0 maxaddr 2
- atf_check -s exit:0 -o match:"max cache: 2" /sbin/brconfig bridge0
- unset LD_PRELOAD
-
- # Test we can cache two addresses again
- export RUMP_SERVER=$SOCK1
- atf_check -s exit:0 -o ignore rump.ping -n -w $TIMEOUT -c 1 $IP2
- export RUMP_SERVER=$SOCK2
- export LD_PRELOAD=/usr/lib/librumphijack.so
- /sbin/brconfig bridge0
- atf_check -s exit:0 -o match:"$addr1 shmif0" /sbin/brconfig bridge0
- atf_check -s exit:0 -o match:"$addr3 shmif1" /sbin/brconfig bridge0
- unset LD_PRELOAD
-}
-
bridge_ipv4_body()
{
setup
@@ -413,78 +349,6 @@
rump_server_destroy_ifaces
}
-bridge_rtable_body()
-{
- addr1= addr3=
-
- setup
- setup_bridge
-
- # Get MAC addresses of the endpoints.
- addr1=$(get_macaddr $SOCK1 shmif0)
- addr3=$(get_macaddr $SOCK3 shmif0)
-
- # Confirm there is no MAC address caches.
- export RUMP_SERVER=$SOCK2
- export LD_PRELOAD=/usr/lib/librumphijack.so
- $DEBUG && /sbin/brconfig bridge0
- atf_check -s exit:0 -o not-match:"$addr1" /sbin/brconfig bridge0
- atf_check -s exit:0 -o not-match:"$addr3" /sbin/brconfig bridge0
- unset LD_PRELOAD
-
- # Make the bridge learn the MAC addresses of the endpoints.
- export RUMP_SERVER=$SOCK1
- atf_check -s exit:0 -o ignore rump.ping -n -w $TIMEOUT -c 1 $IP2
- unset RUMP_SERVER
-
- # Tests the addresses are in the cache.
- export RUMP_SERVER=$SOCK2
- export LD_PRELOAD=/usr/lib/librumphijack.so
- $DEBUG && /sbin/brconfig bridge0
- atf_check -s exit:0 -o match:"$addr1 shmif0" /sbin/brconfig bridge0
- atf_check -s exit:0 -o match:"$addr3 shmif1" /sbin/brconfig bridge0
-
- # Tests brconfig deladdr
- atf_check -s exit:0 -o ignore /sbin/brconfig bridge0 deladdr "$addr1"
- atf_check -s exit:0 -o not-match:"$addr1 shmif0" /sbin/brconfig bridge0
- atf_check -s exit:0 -o ignore /sbin/brconfig bridge0 deladdr "$addr3"
- atf_check -s exit:0 -o not-match:"$addr3 shmif1" /sbin/brconfig bridge0
- unset LD_PRELOAD
-
- # Refill the MAC addresses of the endpoints.
- export RUMP_SERVER=$SOCK1
- atf_check -s exit:0 -o ignore rump.ping -n -w $TIMEOUT -c 1 $IP2
- unset RUMP_SERVER
- export RUMP_SERVER=$SOCK2
- export LD_PRELOAD=/usr/lib/librumphijack.so
- $DEBUG && /sbin/brconfig bridge0
- atf_check -s exit:0 -o match:"$addr1 shmif0" /sbin/brconfig bridge0
- atf_check -s exit:0 -o match:"$addr3 shmif1" /sbin/brconfig bridge0
-
- # Tests brconfig flush.
- atf_check -s exit:0 -o ignore /sbin/brconfig bridge0 flush
- atf_check -s exit:0 -o not-match:"$addr1 shmif0" /sbin/brconfig bridge0
- atf_check -s exit:0 -o not-match:"$addr3 shmif1" /sbin/brconfig bridge0
- unset LD_PRELOAD
-
- # Tests brconfig timeout.
- export RUMP_SERVER=$SOCK2
- export LD_PRELOAD=/usr/lib/librumphijack.so
- atf_check -s exit:0 -o match:"timeout: 1200" /sbin/brconfig bridge0
- atf_check -s exit:0 -o ignore /sbin/brconfig bridge0 timeout 10
- atf_check -s exit:0 -o match:"timeout: 10" /sbin/brconfig bridge0
- unset LD_PRELOAD
-
- # Tests brconfig maxaddr.
- test_brconfig_maxaddr
-
- # TODO: brconfig static/flushall/discover/learn
- # TODO: cache expiration; it takes 5 minutes at least and we want to
- # wait here so long. Should we have a sysctl to change the period?
-
- rump_server_destroy_ifaces
-}
-
bridge_member_ipv4_body()
{
setup
@@ -542,13 +406,6 @@
cleanup
}
-bridge_rtable_cleanup()
-{
-
- $DEBUG && dump
- cleanup
-}
-
bridge_member_ipv4_cleanup()
{
@@ -567,7 +424,6 @@
{
atf_add_test_case bridge_ipv4
atf_add_test_case bridge_ipv6
- atf_add_test_case bridge_rtable
atf_add_test_case bridge_member_ipv4
atf_add_test_case bridge_member_ipv6
}
diff -r 3aea127cf4b8 -r 25a6eb6d37c8 tests/net/if_bridge/t_rtable.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/net/if_bridge/t_rtable.sh Sat Mar 11 04:24:52 2017 +0000
@@ -0,0 +1,353 @@
+# $NetBSD: t_rtable.sh,v 1.1 2017/03/11 04:24:52 ozaki-r Exp $
+#
+# Copyright (c) 2017 Internet Initiative Japan Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+SOCK1=unix://commsock1
+SOCK2=unix://commsock2
+SOCK3=unix://commsock3
+IP1=10.0.0.1
+IP2=10.0.0.2
+
+DEBUG=${DEBUG:-false}
+TIMEOUT=5
+
+setup_endpoint()
+{
+ local sock=${1}
+ local addr=${2}
+ local bus=${3}
+ local mode=${4}
+
+ rump_server_add_iface $sock shmif0 $bus
+ export RUMP_SERVER=${sock}
+ if [ $mode = "ipv6" ]; then
+ atf_check -s exit:0 rump.ifconfig shmif0 inet6 ${addr}
+ else
+ atf_check -s exit:0 rump.ifconfig shmif0 inet ${addr} netmask 0xffffff00
+ fi
+
+ atf_check -s exit:0 rump.ifconfig shmif0 up
+ $DEBUG && rump.ifconfig shmif0
+}
+
+setup_bridge_server()
+{
+
+ rump_server_add_iface $SOCK2 shmif0 bus1
+ rump_server_add_iface $SOCK2 shmif1 bus2
+ export RUMP_SERVER=$SOCK2
+ atf_check -s exit:0 rump.ifconfig shmif0 up
+ atf_check -s exit:0 rump.ifconfig shmif1 up
+}
+
+setup()
+{
Home |
Main Index |
Thread Index |
Old Index