CVS commit: src/tests/net/altq

2021-07-15 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Fri Jul 16 02:33:32 UTC 2021

Modified Files:
src/tests/net/altq: t_cbq.sh

Log Message:
tests, altq: fix checks of altqd startup

Hopefully the fix stabilizes test results on qemu/anita.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/tests/net/altq/t_cbq.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/net/altq/t_cbq.sh
diff -u src/tests/net/altq/t_cbq.sh:1.2 src/tests/net/altq/t_cbq.sh:1.3
--- src/tests/net/altq/t_cbq.sh:1.2	Wed Jul 14 08:33:47 2021
+++ src/tests/net/altq/t_cbq.sh	Fri Jul 16 02:33:32 2021
@@ -1,4 +1,4 @@
-#	$NetBSD: t_cbq.sh,v 1.2 2021/07/14 08:33:47 ozaki-r Exp $
+#	$NetBSD: t_cbq.sh,v 1.3 2021/07/16 02:33:32 ozaki-r Exp $
 #
 # Copyright (c) 2021 Internet Initiative Japan Inc.
 # All rights reserved.
@@ -45,6 +45,23 @@ IP_REMOTE21=10.0.1.2
 IP_REMOTE22=10.0.1.22
 ALTQD_PIDFILE=./pid
 
+start_altqd()
+{
+
+	$HIJACKING_ALTQ altqd
+
+	sleep 0.1
+	if $HIJACKING_ALTQ test ! -f /var/run/altqd.pid; then
+		sleep 1
+	fi
+
+	$HIJACKING_ALTQ test -f /var/run/altqd.pid
+	if [ $? != 0 ]; then
+		atf_fail "starting altqd failed"
+	fi
+
+	$HIJACKING_ALTQ cat /var/run/altqd.pid > $ALTQD_PIDFILE
+}
 
 start_altqd_basic()
 {
@@ -64,18 +81,9 @@ start_altqd_basic()
 	EOF
 	$DEBUG && cat ./altq.conf
 	atf_check -s exit:0 $HIJACKING_ALTQ cp ./altq.conf /rump/etc/altq.conf
-	$HIJACKING_ALTQ test -f /rump/etc/altq.conf
-
-	#atf_check -s exit:0 $HIJACKING_ALTQ altqd
-	$HIJACKING_ALTQ altqd
-
-	$HIJACKING_ALTQ test -f /var/run/altqd.pid
-	if [ $? != 0 ]; then
-		atf_check -s exit:0 $HIJACKING_ALTQ altqd -d
-		# Should abort
-	fi
+	atf_check -s exit:0 $HIJACKING_ALTQ test -f /rump/etc/altq.conf
 
-	$HIJACKING_ALTQ cat /var/run/altqd.pid > $ALTQD_PIDFILE
+	start_altqd
 
 	$DEBUG && $HIJACKING_ALTQ altqstat -s
 	$HIJACKING_ALTQ altqstat -c 1 >./out
@@ -196,16 +204,7 @@ start_altqd_multi_ifaces()
 	atf_check -s exit:0 $HIJACKING_ALTQ cp ./altq.conf /rump/etc/altq.conf
 	$HIJACKING_ALTQ test -f /rump/etc/altq.conf
 
-	#atf_check -s exit:0 $HIJACKING_ALTQ altqd
-	$HIJACKING_ALTQ altqd
-
-	$HIJACKING_ALTQ test -f /var/run/altqd.pid
-	if [ $? != 0 ]; then
-		atf_check -s exit:0 $HIJACKING_ALTQ altqd -d
-		# Should abort
-	fi
-
-	$HIJACKING_ALTQ cat /var/run/altqd.pid > $ALTQD_PIDFILE
+	start_altqd
 
 	$DEBUG && $HIJACKING_ALTQ altqstat -s
 
@@ -335,15 +334,7 @@ start_altqd_options()
 	atf_check -s exit:0 $HIJACKING_ALTQ cp ./altq.conf /rump/etc/altq.conf
 	$HIJACKING_ALTQ test -f /rump/etc/altq.conf
 
-	$HIJACKING_ALTQ altqd
-
-	$HIJACKING_ALTQ test -f /var/run/altqd.pid
-	if [ $? != 0 ]; then
-		atf_check -s exit:0 $HIJACKING_ALTQ altqd -d
-		# Should abort
-	fi
-
-	$HIJACKING_ALTQ cat /var/run/altqd.pid > $ALTQD_PIDFILE
+	start_altqd
 
 	$DEBUG && $HIJACKING_ALTQ altqstat -s
 	$HIJACKING_ALTQ altqstat -c 1 >./out



CVS commit: src/tests/net/altq

2021-07-15 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Fri Jul 16 02:33:32 UTC 2021

Modified Files:
src/tests/net/altq: t_cbq.sh

Log Message:
tests, altq: fix checks of altqd startup

Hopefully the fix stabilizes test results on qemu/anita.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/tests/net/altq/t_cbq.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.



CVS commit: src/tests/net/altq

2021-07-14 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Wed Jul 14 08:33:47 UTC 2021

Modified Files:
src/tests/net/altq: t_cbq.sh

Log Message:
tests, altq: test new options


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/tests/net/altq/t_cbq.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/net/altq/t_cbq.sh
diff -u src/tests/net/altq/t_cbq.sh:1.1 src/tests/net/altq/t_cbq.sh:1.2
--- src/tests/net/altq/t_cbq.sh:1.1	Wed Jul 14 03:22:33 2021
+++ src/tests/net/altq/t_cbq.sh	Wed Jul 14 08:33:47 2021
@@ -1,4 +1,4 @@
-#	$NetBSD: t_cbq.sh,v 1.1 2021/07/14 03:22:33 ozaki-r Exp $
+#	$NetBSD: t_cbq.sh,v 1.2 2021/07/14 08:33:47 ozaki-r Exp $
 #
 # Copyright (c) 2021 Internet Initiative Japan Inc.
 # All rights reserved.
@@ -40,6 +40,7 @@ IP_LOCAL1=10.0.0.1
 IP_LOCAL2=10.0.1.1
 IP_REMOTE11=10.0.0.2
 IP_REMOTE12=10.0.0.22
+IP_REMOTE13=10.0.0.23
 IP_REMOTE21=10.0.1.2
 IP_REMOTE22=10.0.1.22
 ALTQD_PIDFILE=./pid
@@ -312,6 +313,118 @@ test_altq_cbq_multi_ifaces_ipv4()
 	rump_server_destroy_ifaces
 }
 
+start_altqd_options()
+{
+
+	export RUMP_SERVER=$SOCK_LOCAL
+
+	$HIJACKING_ALTQ mkdir -p /rump/etc
+	$HIJACKING_ALTQ mkdir -p /rump/var/run
+
+	# - no-tbr and no-control are specified
+	# - root_class is the default class
+	cat > ./altq.conf <<-EOF
+	interface shmif0 cbq no-tbr no-control
+	class cbq shmif0 root_class NULL pbandwidth 100 default
+	class cbq shmif0 normal_class root_class pbandwidth 50
+	filter shmif0 normal_class $IP_REMOTE11 0 0 0 0
+	class cbq shmif0 drop_class root_class pbandwidth 0
+	filter shmif0 drop_class $IP_REMOTE12 0 0 0 0
+	EOF
+	$DEBUG && cat ./altq.conf
+	atf_check -s exit:0 $HIJACKING_ALTQ cp ./altq.conf /rump/etc/altq.conf
+	$HIJACKING_ALTQ test -f /rump/etc/altq.conf
+
+	$HIJACKING_ALTQ altqd
+
+	$HIJACKING_ALTQ test -f /var/run/altqd.pid
+	if [ $? != 0 ]; then
+		atf_check -s exit:0 $HIJACKING_ALTQ altqd -d
+		# Should abort
+	fi
+
+	$HIJACKING_ALTQ cat /var/run/altqd.pid > $ALTQD_PIDFILE
+
+	$DEBUG && $HIJACKING_ALTQ altqstat -s
+	$HIJACKING_ALTQ altqstat -c 1 >./out
+	$DEBUG && cat ./out
+	atf_check -s exit:0 \
+	-o match:"altqstat: cbq on interface shmif0" \
+	-o match:'Class 1 on Interface shmif0: root_class' \
+	-o match:'Class 2 on Interface shmif0: normal_class' \
+	-o match:'Class 3 on Interface shmif0: drop_class' \
+	cat ./out
+	atf_check -s exit:0 -o not-match:'shmif0: ctl_class' cat ./out
+
+	rm -f ./out
+}
+
+test_altq_cbq_options_ipv4()
+{
+	local ifconfig="atf_check -s exit:0 rump.ifconfig"
+	local ping="atf_check -s exit:0 -o ignore rump.ping"
+	local opts="-q -c 1 -w 1"
+
+	rump_server_fs_start $SOCK_LOCAL local altq
+	rump_server_start $SOCK_REMOTE
+
+	rump_server_add_iface $SOCK_LOCAL shmif0 $BUS
+	rump_server_add_iface $SOCK_REMOTE shmif0 $BUS
+
+	export RUMP_SERVER=$SOCK_LOCAL
+	$ifconfig shmif0 inet $IP_LOCAL1/24
+	export RUMP_SERVER=$SOCK_REMOTE
+	$ifconfig shmif0 inet $IP_REMOTE11/24
+	$ifconfig shmif0 inet $IP_REMOTE12/24 alias
+	$ifconfig shmif0 inet $IP_REMOTE13/24 alias
+	$ifconfig -w 10
+
+	export RUMP_SERVER=$SOCK_LOCAL
+	# Invoke ARP
+	$ping $opts $IP_REMOTE11
+	$ping $opts $IP_REMOTE12
+	$ping $opts $IP_REMOTE13
+
+	start_altqd_options
+
+	export RUMP_SERVER=$SOCK_LOCAL
+	$ping $opts $IP_REMOTE11
+
+	$HIJACKING_ALTQ altqstat -c 1 >./out
+	$DEBUG && cat ./out
+
+	check_counter ./out normal 'pkts: 1'
+	check_counter ./out root   'pkts: 1'
+	check_counter ./out drop   'pkts: 0'
+
+	atf_check -s not-exit:0 -o ignore -e match:"No buffer space available" \
+	rump.ping $opts $IP_REMOTE12
+
+	$HIJACKING_ALTQ altqstat -c 1 >./out
+	$DEBUG && cat ./out
+
+	check_counter ./out drop   'drops: 1'
+	check_counter ./out drop   'pkts: 0'
+	check_counter ./out normal 'pkts: 1'
+	check_counter ./out root   'pkts: 1'
+
+	# The packet goes to the default class
+	$ping $opts $IP_REMOTE13
+
+	$HIJACKING_ALTQ altqstat -c 1 >./out
+	$DEBUG && cat ./out
+
+	check_counter ./out drop   'pkts: 0'
+	check_counter ./out normal 'pkts: 1'
+	check_counter ./out root   'pkts: 2'
+
+	rm -f ./out
+
+	shutdown_altqd
+
+	rump_server_destroy_ifaces
+}
+
 add_test_case()
 {
 	local algo=$1
@@ -344,4 +457,5 @@ atf_init_test_cases()
 
 	add_test_case cbq basicipv4
 	add_test_case cbq multi_ifaces ipv4
+	add_test_case cbq options  ipv4
 }



CVS commit: src/tests/net/altq

2021-07-14 Thread Ryota Ozaki
Module Name:src
Committed By:   ozaki-r
Date:   Wed Jul 14 08:33:47 UTC 2021

Modified Files:
src/tests/net/altq: t_cbq.sh

Log Message:
tests, altq: test new options


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/tests/net/altq/t_cbq.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.