Move route check functions to net_common.sh

This commit is contained in:
ozaki-r 2016-11-24 09:05:16 +00:00
parent 5a2201ed49
commit 927b18c962
6 changed files with 114 additions and 187 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: t_icmp_redirect.sh,v 1.4 2016/11/07 05:25:36 ozaki-r Exp $
# $NetBSD: t_icmp_redirect.sh,v 1.5 2016/11/24 09:05:16 ozaki-r Exp $
#
# Copyright (c) 2015 The NetBSD Foundation, Inc.
# All rights reserved.
@ -111,33 +111,6 @@ teardown_gw()
env RUMP_SERVER=$SOCK_GW rump.halt
}
check_entry_flags()
{
local ip=$(echo $1 |sed 's/\./\\./g')
local flags=$2
atf_check -s exit:0 -o match:" $flags " -e ignore -x \
"rump.netstat -rn -f inet | grep ^'$ip'"
}
check_entry_gw()
{
local ip=$(echo $1 |sed 's/\./\\./g')
local gw=$2
atf_check -s exit:0 -o match:" $gw " -e ignore -x \
"rump.netstat -rn -f inet | grep ^'$ip'"
}
check_entry_fail()
{
local ip=$(echo $1 |sed 's/\./\\./g')
local flags=$2 # Not used currently
atf_check -s not-exit:0 -e ignore -x \
"rump.netstat -rn -f inet | grep ^'$ip'"
}
icmp_redirect_timeout_body()
{
@ -159,7 +132,7 @@ icmp_redirect_timeout_body()
export RUMP_SERVER=$SOCK_PEER
atf_check -s exit:0 -o ignore rump.route add -net 10.0.2.0/24 10.0.0.254
# Up, Gateway, Static
check_entry_flags 10.0.2/24 UGS
check_route_flags 10.0.2/24 UGS
#
# Setup the default gateway to the peer, 10.0.0.1
@ -167,20 +140,20 @@ icmp_redirect_timeout_body()
export RUMP_SERVER=$SOCK_LOCAL
atf_check -s exit:0 -o ignore rump.route add default 10.0.0.1
# Up, Gateway, Static
check_entry_flags default UGS
check_route_flags default UGS
# Try ping 10.0.2.1
atf_check -s exit:0 -o ignore rump.ping -n -w 1 -c 1 10.0.2.1
$DEBUG && rump.netstat -rn -f inet
# Up, Gateway, Host, Dynamic
check_entry_flags 10.0.2.1 UGHD
check_entry_gw 10.0.2.1 10.0.0.254
check_route_flags 10.0.2.1 UGHD
check_route_gw 10.0.2.1 10.0.0.254
atf_check -s exit:0 sleep $((REDIRECT_TIMEOUT + 2))
# The dynamic entry should be expired and removed
check_entry_fail 10.0.2.1
check_route_no_entry 10.0.2.1
export RUMP_SERVER=$SOCK_PEER
$DEBUG && rump.netstat -rn -f inet
@ -249,7 +222,7 @@ icmp_redirect_body()
export RUMP_SERVER=$SOCK_PEER
atf_check -s exit:0 -o ignore rump.route add -net 10.0.2.0/24 10.0.0.254
# Up, Gateway, Static
check_entry_flags 10.0.2/24 UGS
check_route_flags 10.0.2/24 UGS
#
# Setup the default gateway to the peer, 10.0.0.1
@ -257,7 +230,7 @@ icmp_redirect_body()
export RUMP_SERVER=$SOCK_LOCAL
atf_check -s exit:0 -o ignore rump.route add default 10.0.0.1
# Up, Gateway, Static
check_entry_flags default UGS
check_route_flags default UGS
### ICMP redirects are NOT sent by the peer ###
@ -274,7 +247,7 @@ icmp_redirect_body()
$DEBUG && rump.netstat -rn -f inet
# A direct route shouldn't be created
check_entry_fail 10.0.2.1
check_route_no_entry 10.0.2.1
### ICMP redirects are sent by the peer ###
@ -291,8 +264,8 @@ icmp_redirect_body()
$DEBUG && rump.netstat -rn -f inet
# Up, Gateway, Host, Dynamic
check_entry_flags 10.0.2.1 UGHD
check_entry_gw 10.0.2.1 10.0.0.254
check_route_flags 10.0.2.1 UGHD
check_route_gw 10.0.2.1 10.0.0.254
export RUMP_SERVER=$SOCK_PEER
$DEBUG && rump.netstat -rn -f inet
@ -301,7 +274,7 @@ icmp_redirect_body()
# cleanup
export RUMP_SERVER=$SOCK_LOCAL
atf_check -s exit:0 -o ignore rump.route delete 10.0.2.1
check_entry_fail 10.0.2.1
check_route_no_entry 10.0.2.1
### ICMP redirects are NOT sent by the peer (again) ###
@ -318,7 +291,7 @@ icmp_redirect_body()
$DEBUG && rump.netstat -rn -f inet
# A direct route shouldn't be created
check_entry_fail 10.0.2.1
check_route_no_entry 10.0.2.1
teardown_gw

View File

@ -1,4 +1,4 @@
# $NetBSD: t_ipaddress.sh,v 1.6 2016/11/24 07:32:19 ozaki-r Exp $
# $NetBSD: t_ipaddress.sh,v 1.7 2016/11/24 09:05:17 ozaki-r Exp $
#
# Copyright (c) 2015 Internet Initiative Japan Inc.
# All rights reserved.
@ -32,24 +32,6 @@ BUS=bus
DEBUG=${DEBUG:-false}
check_entry()
{
local ip=$(echo $1 |sed 's/\./\\./g')
local word=$2
atf_check -s exit:0 -o match:"$word" -e ignore -x \
"rump.netstat -rn | grep ^'$ip'"
}
check_entry_fail()
{
local ip=$(echo $1 |sed 's/\./\\./g')
local flags=$2 # Not used currently
atf_check -s not-exit:0 -e ignore -x \
"rump.netstat -rn | grep ^'$ip'"
}
test_same_address()
{
local ip=10.0.0.1
@ -66,20 +48,16 @@ test_same_address()
$DEBUG && rump.netstat -nr -f inet
check_entry $ip UHl
check_entry $ip lo0
check_entry $ip 'link#2'
check_entry $net UC
check_entry $net shmif0
check_entry $net 'link#2'
check_route $ip 'link#2' UHl lo0
check_route $net 'link#2' UC shmif0
# Delete the address
atf_check -s exit:0 -o ignore rump.ifconfig shmif0 $ip delete
$DEBUG && rump.netstat -nr -f inet
check_entry_fail $ip
check_entry_fail $net
check_route_no_entry $ip
check_route_no_entry $net
# Assign the same address again
atf_check -s exit:0 -o ignore rump.ifconfig shmif0 $ip/24
@ -87,20 +65,16 @@ test_same_address()
$DEBUG && rump.netstat -nr -f inet
check_entry $ip UHl
check_entry $ip lo0
check_entry $ip 'link#2'
check_entry $net UC
check_entry $net shmif0
check_entry $net 'link#2'
check_route $ip 'link#2' UHl lo0
check_route $net 'link#2' UC shmif0
# Delete the address again
atf_check -s exit:0 -o ignore rump.ifconfig shmif0 $ip delete
$DEBUG && rump.netstat -nr -f inet
check_entry_fail $ip
check_entry_fail $net
check_route_no_entry $ip
check_route_no_entry $net
}
test_same_address6()
@ -119,20 +93,16 @@ test_same_address6()
$DEBUG && rump.netstat -nr -f inet6
check_entry $ip UHl
check_entry $ip lo0
check_entry $ip 'link#2'
check_entry $net UC
check_entry $net shmif0
check_entry $net 'link#2'
check_route $ip 'link#2' UHl lo0
check_route $net 'link#2' UC shmif0
# Delete the address
atf_check -s exit:0 -o ignore rump.ifconfig shmif0 inet6 $ip delete
$DEBUG && rump.netstat -nr -f inet6
check_entry_fail $ip
check_entry_fail $net
check_route_no_entry $ip
check_route_no_entry $net
# Assign the same address again
atf_check -s exit:0 -o ignore rump.ifconfig shmif0 inet6 $ip
@ -140,20 +110,16 @@ test_same_address6()
$DEBUG && rump.netstat -nr -f inet6
check_entry $ip UHl
check_entry $ip lo0
check_entry $ip 'link#2'
check_entry $net UC
check_entry $net shmif0
check_entry $net 'link#2'
check_route $ip 'link#2' UHl lo0
check_route $net 'link#2' UC shmif0
# Delete the address again
atf_check -s exit:0 -o ignore rump.ifconfig shmif0 inet6 $ip delete
$DEBUG && rump.netstat -nr -f inet6
check_entry_fail $ip
check_entry_fail $net
check_route_no_entry $ip
check_route_no_entry $net
}
test_auto_linklocal()

View File

@ -1,4 +1,4 @@
# $NetBSD: net_common.sh,v 1.2 2016/11/24 09:03:53 ozaki-r Exp $
# $NetBSD: net_common.sh,v 1.3 2016/11/24 09:05:16 ozaki-r Exp $
#
# Copyright (c) 2016 Internet Initiative Japan Inc.
# All rights reserved.
@ -47,3 +47,41 @@ extract_new_packets()
cat ./.__diff
}
check_route()
{
local target=$1
local gw=$2
local flags=${3:-\.\+}
local ifname=${4:-\.\+}
target=$(echo $target |sed 's/\./\\./g')
if [ "$gw" = "" ]; then
gw=".+"
else
gw=$(echo $gw |sed 's/\./\\./g')
fi
atf_check -s exit:0 -e ignore \
-o match:"^$target +$gw +$flags +- +- +.+ +$ifname" \
rump.netstat -rn
}
check_route_flags()
{
check_route "$1" "" "$2" ""
}
check_route_gw()
{
check_route "$1" "$2" "" ""
}
check_route_no_entry()
{
local target=$(echo $1 |sed 's/\./\\./g')
atf_check -s exit:0 -e ignore -o not-match:"^$target" \
rump.netstat -rn
}

View File

@ -1,10 +1,14 @@
# $NetBSD: Makefile,v 1.4 2016/04/21 05:10:15 ozaki-r Exp $
# $NetBSD: Makefile,v 1.5 2016/11/24 09:05:17 ozaki-r Exp $
#
.include <bsd.own.mk>
TESTSDIR= ${TESTSBASE}/net/route
TESTS_SH= t_change t_flags t_flags6 t_route
.for name in change flags flags6 route
TESTS_SH+= t_${name}
TESTS_SH_SRC_t_${name}= ../net_common.sh t_${name}.sh
.endfor
.include <bsd.test.mk>

View File

@ -1,4 +1,4 @@
# $NetBSD: t_flags.sh,v 1.12 2016/11/07 05:25:37 ozaki-r Exp $
# $NetBSD: t_flags.sh,v 1.13 2016/11/24 09:05:17 ozaki-r Exp $
#
# Copyright (c) 2015 The NetBSD Foundation, Inc.
# All rights reserved.
@ -97,40 +97,13 @@ teardown_gw()
env RUMP_SERVER=$SOCK_GW rump.halt
}
check_entry_flags()
{
local ip=$(echo $1 |sed 's/\./\\./g')
local flags=$2
atf_check -s exit:0 -o match:" $flags " -e ignore -x \
"rump.netstat -rn -f inet | grep ^'$ip'"
}
check_entry_gw()
{
local ip=$(echo $1 |sed 's/\./\\./g')
local gw=$2
atf_check -s exit:0 -o match:" $gw " -e ignore -x \
"rump.netstat -rn -f inet | grep ^'$ip'"
}
check_entry_fail()
{
ip=$(echo $1 |sed 's/\./\\./g')
flags=$2 # Not used currently
atf_check -s not-exit:0 -e ignore -x \
"rump.netstat -rn -f inet | grep ^'$ip'"
}
test_lo()
{
export RUMP_SERVER=$SOCK_LOCAL
# Up, Host, local
check_entry_flags 127.0.0.1 UHl
check_route_flags 127.0.0.1 UHl
}
test_connected()
@ -139,10 +112,10 @@ test_connected()
export RUMP_SERVER=$SOCK_LOCAL
# Up, Host, LLINFO, local
check_entry_flags 10.0.0.2 UHl
check_route_flags 10.0.0.2 UHl
# Up, Cloning
check_entry_flags 10.0.0/24 UC
check_route_flags 10.0.0/24 UC
}
test_default_gateway()
@ -154,7 +127,7 @@ test_default_gateway()
$DEBUG && rump.netstat -rn -f inet
# Up, Gateway, Static
check_entry_flags default UGS
check_route_flags default UGS
}
test_static()
@ -167,14 +140,14 @@ test_static()
$DEBUG && rump.netstat -rn -f inet
# Up, Gateway, Host, Static
check_entry_flags 10.0.1.1 UGHS
check_route_flags 10.0.1.1 UGHS
# Static route to network
atf_check -s exit:0 -o ignore rump.route add -net 10.0.2.0/24 10.0.0.1
$DEBUG && rump.netstat -rn -f inet
# Up, Gateway, Static
check_entry_flags 10.0.2/24 UGS
check_route_flags 10.0.2/24 UGS
}
test_blackhole()
@ -193,14 +166,14 @@ test_blackhole()
$DEBUG && rump.netstat -rn -f inet
# Up, Gateway, Blackhole, Static
check_entry_flags 10.0.0/24 UGBS
check_route_flags 10.0.0/24 UGBS
atf_check -s not-exit:0 -o match:'100.0% packet loss' \
rump.ping -n -w 1 -c 1 10.0.0.1
$DEBUG && rump.netstat -rn -f inet
# Shouldn't be created
check_entry_fail 10.0.0.1 UH
check_route_no_entry 10.0.0.1
}
test_reject()
@ -215,14 +188,14 @@ test_reject()
$DEBUG && rump.netstat -rn -f inet
# Up, Gateway, Reject, Static
check_entry_flags 10.0.0/24 UGRS
check_route_flags 10.0.0/24 UGRS
atf_check -s not-exit:0 -o ignore -e match:'No route to host' \
rump.ping -n -w 1 -c 1 10.0.0.1
$DEBUG && rump.netstat -rn -f inet
# Shouldn't be created
check_entry_fail 10.0.0.1 UH
check_route_no_entry 10.0.0.1
# Gateway is lo0 (RTF_GATEWAY)
@ -234,14 +207,14 @@ test_reject()
$DEBUG && rump.netstat -rn -f inet
# Up, Gateway, Reject, Static
check_entry_flags 10.0.0/24 UGRS
check_route_flags 10.0.0/24 UGRS
atf_check -s not-exit:0 -o ignore -e match:'Network is unreachable' \
rump.ping -n -w 1 -c 1 10.0.0.1
$DEBUG && rump.netstat -rn -f inet
# Shouldn't be created
check_entry_fail 10.0.0.1 UH
check_route_no_entry 10.0.0.1
# Gateway is lo0 (RTF_HOST)
@ -253,7 +226,7 @@ test_reject()
$DEBUG && rump.netstat -rn -f inet
# Up, Host, Reject, Static
check_entry_flags 10.0.0.1 UHRS
check_route_flags 10.0.0.1 UHRS
atf_check -s not-exit:0 -o ignore -e match:'No route to host' \
rump.ping -n -w 1 -c 1 10.0.0.1
@ -278,7 +251,7 @@ test_icmp_redirect()
export RUMP_SERVER=$SOCK_PEER
atf_check -s exit:0 -o ignore rump.route add -net 10.0.2.0/24 10.0.0.254
# Up, Gateway, Static
check_entry_flags 10.0.2/24 UGS
check_route_flags 10.0.2/24 UGS
#
# Setup the default gateway to the peer, 10.0.0.1
@ -286,15 +259,15 @@ test_icmp_redirect()
export RUMP_SERVER=$SOCK_LOCAL
atf_check -s exit:0 -o ignore rump.route add default 10.0.0.1
# Up, Gateway, Static
check_entry_flags default UGS
check_route_flags default UGS
# Try ping 10.0.2.1
atf_check -s exit:0 -o ignore rump.ping -n -w 1 -c 1 10.0.2.1
$DEBUG && rump.netstat -rn -f inet
# Up, Gateway, Host, Dynamic
check_entry_flags 10.0.2.1 UGHD
check_entry_gw 10.0.2.1 10.0.0.254
check_route_flags 10.0.2.1 UGHD
check_route_gw 10.0.2.1 10.0.0.254
export RUMP_SERVER=$SOCK_PEER
$DEBUG && rump.netstat -rn -f inet
@ -307,16 +280,16 @@ test_icmp_redirect()
export RUMP_SERVER=$SOCK_LOCAL
atf_check -s exit:0 -o ignore rump.route add 10.0.2.2 10.0.0.1
# Up, Gateway, Host, Static
check_entry_flags 10.0.2.2 UGHS
check_entry_gw 10.0.2.2 10.0.0.1
check_route_flags 10.0.2.2 UGHS
check_route_gw 10.0.2.2 10.0.0.1
# Try ping 10.0.2.2
atf_check -s exit:0 -o ignore rump.ping -n -w 1 -c 1 10.0.2.2
$DEBUG && rump.netstat -rn -f inet
# Up, Gateway, Host, Modified, Static
check_entry_flags 10.0.2.2 UGHMS
check_entry_gw 10.0.2.2 10.0.0.254
check_route_flags 10.0.2.2 UGHMS
check_route_gw 10.0.2.2 10.0.0.254
teardown_gw
}
@ -332,7 +305,7 @@ test_announce()
$DEBUG && rump.netstat -rn -f inet
# Up, Gateway, Static, proxy
check_entry_flags 10.0.0/24 UGSp
check_route_flags 10.0.0/24 UGSp
# TODO test its behavior
}

View File

@ -1,4 +1,4 @@
# $NetBSD: t_flags6.sh,v 1.9 2016/11/07 05:25:37 ozaki-r Exp $
# $NetBSD: t_flags6.sh,v 1.10 2016/11/24 09:05:17 ozaki-r Exp $
#
# Copyright (c) 2016 Internet Initiative Japan Inc.
# All rights reserved.
@ -69,43 +69,16 @@ setup_peer()
$DEBUG && rump.netstat -rn -f inet6
}
check_entry_flags()
{
local ip=$(echo $1 |sed 's/\./\\./g')
local flags=$2
atf_check -s exit:0 -o match:" $flags " -e ignore -x \
"rump.netstat -rn -f inet6 | grep ^'$ip'"
}
check_entry_gw()
{
local ip=$(echo $1 |sed 's/\./\\./g')
local gw=$2
atf_check -s exit:0 -o match:" $gw " -e ignore -x \
"rump.netstat -rn -f inet6 | grep ^'$ip'"
}
check_entry_fail()
{
ip=$(echo $1 |sed 's/\./\\./g')
flags=$2 # Not used currently
atf_check -s not-exit:0 -e ignore -x \
"rump.netstat -rn -f inet6 | grep ^'$ip'"
}
test_lo6()
{
export RUMP_SERVER=$SOCK_LOCAL
# Up, Host, local
check_entry_flags fe80::1 UHl
check_route_flags fe80::1 UHl
# Up, Host, local
check_entry_flags ::1 UHl
check_route_flags ::1 UHl
}
test_connected6()
@ -114,10 +87,10 @@ test_connected6()
export RUMP_SERVER=$SOCK_LOCAL
# Up, Host, local
check_entry_flags $IP6_LOCAL UHl
check_route_flags $IP6_LOCAL UHl
# Up, Connected
check_entry_flags fc00::/64 UC
check_route_flags fc00::/64 UC
}
test_default_gateway6()
@ -129,7 +102,7 @@ test_default_gateway6()
$DEBUG && rump.netstat -rn -f inet6
# Up, Gateway, Static
check_entry_flags default UGS
check_route_flags default UGS
}
test_static6()
@ -143,7 +116,7 @@ test_static6()
$DEBUG && rump.netstat -rn -f inet6
# Up, Gateway, Host, Static
check_entry_flags fc00::1:1 UGHS
check_route_flags fc00::1:1 UGHS
# Static route to network
atf_check -s exit:0 -o ignore \
@ -151,7 +124,7 @@ test_static6()
$DEBUG && rump.netstat -rn -f inet6
# Up, Gateway, Static
check_entry_flags fc00::/24 UGS
check_route_flags fc00::/24 UGS
}
test_blackhole6()
@ -171,14 +144,14 @@ test_blackhole6()
$DEBUG && rump.netstat -rn -f inet6
# Up, Gateway, Blackhole, Static
check_entry_flags fc00::/64 UGBS
check_route_flags fc00::/64 UGBS
atf_check -s not-exit:0 -o match:'100.0% packet loss' \
rump.ping6 -n -X 1 -c 1 $IP6_PEER
$DEBUG && rump.netstat -rn -f inet6
# Shouldn't be created
check_entry_fail $IP6_PEER UH
check_route_no_entry $IP6_PEER
}
test_reject6()
@ -195,14 +168,14 @@ test_reject6()
$DEBUG && rump.netstat -rn -f inet6
# Up, Gateway, Reject, Static
check_entry_flags fc00::/64 UGRS
check_route_flags fc00::/64 UGRS
atf_check -s not-exit:0 -o ignore -e match:'No route to host' \
rump.ping6 -n -X 1 -c 1 $IP6_PEER
$DEBUG && rump.netstat -rn -f inet6
# Shouldn't be created
check_entry_fail $IP6_PEER UH
check_route_no_entry $IP6_PEER
# Gateway is lo0 (RTF_GATEWAY)
@ -215,14 +188,14 @@ test_reject6()
$DEBUG && rump.netstat -rn -f inet6
# Up, Gateway, Reject, Static
check_entry_flags fc00::/64 UGRS
check_route_flags fc00::/64 UGRS
atf_check -s not-exit:0 -o ignore -e match:'Network is unreachable' \
rump.ping6 -n -X 1 -c 1 $IP6_PEER
$DEBUG && rump.netstat -rn -f inet6
# Shouldn't be created
check_entry_fail $IP6_PEER UH
check_route_no_entry $IP6_PEER
# Gateway is lo0 (RTF_HOST)
@ -235,7 +208,7 @@ test_reject6()
$DEBUG && rump.netstat -rn -f inet6
# Up, Host, Reject, Static
check_entry_flags fc00:: UHRS
check_route_flags fc00:: UHRS
atf_check -s not-exit:0 -o ignore -e match:'No route to host' \
rump.ping6 -n -X 1 -c 1 $IP6_PEER
@ -257,7 +230,7 @@ test_announce6()
$DEBUG && rump.netstat -rn -f inet6
# Up, Gateway, Static, proxy
check_entry_flags fc00::/64 UGSp
check_route_flags fc00::/64 UGSp
# TODO test its behavior
}