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/5df46fbb9249
branches:  trunk
changeset: 822277:5df46fbb9249
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 485a765fb2da -r 5df46fbb9249 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 485a765fb2da -r 5df46fbb9249 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 485a765fb2da -r 5df46fbb9249 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 485a765fb2da -r 5df46fbb9249 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