Module Name:    src
Committed By:   ozaki-r
Date:           Wed Jul 19 02:06:11 UTC 2017

Modified Files:
        src/tests/net/ipsec: t_ipsec_misc.sh

Log Message:
Make tests more stable

sleep command seems to wait longer than expected on anita so
use polling to wait for a state change.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/tests/net/ipsec/t_ipsec_misc.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/ipsec/t_ipsec_misc.sh
diff -u src/tests/net/ipsec/t_ipsec_misc.sh:1.11 src/tests/net/ipsec/t_ipsec_misc.sh:1.12
--- src/tests/net/ipsec/t_ipsec_misc.sh:1.11	Tue Jul 18 02:16:07 2017
+++ src/tests/net/ipsec/t_ipsec_misc.sh	Wed Jul 19 02:06:11 2017
@@ -1,4 +1,4 @@
-#	$NetBSD: t_ipsec_misc.sh,v 1.11 2017/07/18 02:16:07 ozaki-r Exp $
+#	$NetBSD: t_ipsec_misc.sh,v 1.12 2017/07/19 02:06:11 ozaki-r Exp $
 #
 # Copyright (c) 2017 Internet Initiative Japan Inc.
 # All rights reserved.
@@ -438,6 +438,31 @@ check_packet_spi()
 	    cat $outfile
 }
 
+wait_sa_disappeared()
+{
+	local spi=$1
+	local i=
+
+	export RUMP_SERVER=$SOCK_LOCAL
+	for i in $(seq 1 10); do
+		$HIJACKING setkey -D |grep -q "spi=$spi"
+		[ $? != 0 ] && break
+		sleep 1
+	done
+	if [ $i -eq 10 ]; then
+		atf_fail "SA (spi=$spi) didn't disappear in 10s"
+	fi
+	export RUMP_SERVER=$SOCK_PEER
+	for i in $(seq 1 10); do
+		$HIJACKING setkey -D |grep -q "spi=$spi"
+		[ $? != 0 ] && break
+		sleep 1
+	done
+	if [ $i -eq 10 ]; then
+		atf_fail "SA (spi=$spi) didn't disappear in 10s"
+	fi
+}
+
 test_spi()
 {
 	local proto=$1
@@ -504,7 +529,7 @@ test_spi()
 		check_packet_spi $outfile $ip_local $ip_peer $proto_cap 10020
 	fi
 
-	sleep $((3 + 1))
+	wait_sa_disappeared 10020
 
 	export RUMP_SERVER=$SOCK_LOCAL
 	atf_check -s exit:0 -o ignore rump.ping -c 1 -n -w 3 $ip_peer
@@ -516,7 +541,7 @@ test_spi()
 		check_packet_spi $outfile $ip_local $ip_peer $proto_cap 10010
 	fi
 
-	sleep $((6 + 1 - (3 + 1)))
+	wait_sa_disappeared 10010
 
 	export RUMP_SERVER=$SOCK_LOCAL
 	atf_check -s exit:0 -o ignore rump.ping -c 1 -n -w 3 $ip_peer

Reply via email to