summaryrefslogtreecommitdiff
path: root/regress/sys/netinet
diff options
context:
space:
mode:
authorAnton Lindqvist <anton@cvs.openbsd.org>2024-01-05 10:37:55 +0000
committerAnton Lindqvist <anton@cvs.openbsd.org>2024-01-05 10:37:55 +0000
commit39f4555786d5f259dd8e084f1e7d6e56172daf9f (patch)
treebdc08a2905e1266be3e798272f7ce3711532e061 /regress/sys/netinet
parent14c2daf534567ad36fd8003978dc31924767eafe (diff)
Wait until the expected interface state is reached instead of relying on
arbitrary sleeps. Should hopefully make these tests more stable.
Diffstat (limited to 'regress/sys/netinet')
-rw-r--r--regress/sys/netinet/carp/carp_1.sh6
-rw-r--r--regress/sys/netinet/carp/carp_2.sh6
-rw-r--r--regress/sys/netinet/carp/carp_3.sh6
-rw-r--r--regress/sys/netinet/carp/carp_4.sh6
-rw-r--r--regress/sys/netinet/carp/carp_subr13
5 files changed, 25 insertions, 12 deletions
diff --git a/regress/sys/netinet/carp/carp_1.sh b/regress/sys/netinet/carp/carp_1.sh
index 76cf607ae22..28d685eb778 100644
--- a/regress/sys/netinet/carp/carp_1.sh
+++ b/regress/sys/netinet/carp/carp_1.sh
@@ -1,5 +1,5 @@
#!/bin/ksh
-# $OpenBSD: carp_1.sh,v 1.2 2023/10/19 18:36:41 anton Exp $
+# $OpenBSD: carp_1.sh,v 1.3 2024/01/05 10:37:54 anton Exp $
cleanup()
@@ -78,13 +78,13 @@ ifconfig carp$IFNO2 rdomain $RD2 192.168.0.1/24 \
#
# IFNO1 must become master
-sleep 3.1 # need 3 seconds to become master
+wait_until "ifconfig carp$IFNO1 | grep -q 'status: master'"
test sh -c "ifconfig carp$IFNO1 | grep -q 'status: master'"
test sh -c "ifconfig carp$IFNO2 | grep -q 'status: backup'"
# carpdemote must work
ifconfig -g ${IFGPREFIX}a carpdemote
-sleep 0.1
+wait_until "ifconfig carp$IFNO1 | grep -q 'status: backup'"
test sh -c "ifconfig carp$IFNO1 | grep -q 'status: backup'"
test sh -c "ifconfig carp$IFNO2 | grep -q 'status: master'"
diff --git a/regress/sys/netinet/carp/carp_2.sh b/regress/sys/netinet/carp/carp_2.sh
index 2cd53f0f47c..ce877509dd7 100644
--- a/regress/sys/netinet/carp/carp_2.sh
+++ b/regress/sys/netinet/carp/carp_2.sh
@@ -1,5 +1,5 @@
#!/bin/ksh
-# $OpenBSD: carp_2.sh,v 1.2 2023/10/19 18:36:41 anton Exp $
+# $OpenBSD: carp_2.sh,v 1.3 2024/01/05 10:37:54 anton Exp $
cleanup()
@@ -81,13 +81,13 @@ ifconfig carp$IFNO2 rdomain $RD2 lladdr $lladdr2 192.168.0.1/24 \
#
# IFNO1 must become master
-sleep 3.1 # need 3 seconds to become master
+wait_until "ifconfig carp$IFNO1 | grep -q 'status: master'"
test sh -c "ifconfig carp$IFNO1 | grep -q 'status: master'"
test sh -c "ifconfig carp$IFNO2 | grep -q 'status: backup'"
# carpdemote must work
ifconfig -g ${IFGPREFIX}a carpdemote
-sleep 0.1
+wait_until "ifconfig carp$IFNO1 | grep -q 'status: backup'"
test sh -c "ifconfig carp$IFNO1 | grep -q 'status: backup'"
test sh -c "ifconfig carp$IFNO2 | grep -q 'status: master'"
diff --git a/regress/sys/netinet/carp/carp_3.sh b/regress/sys/netinet/carp/carp_3.sh
index 3b2dc2c7854..ca7774c391e 100644
--- a/regress/sys/netinet/carp/carp_3.sh
+++ b/regress/sys/netinet/carp/carp_3.sh
@@ -1,5 +1,5 @@
#!/bin/ksh
-# $OpenBSD: carp_3.sh,v 1.2 2023/10/19 18:36:41 anton Exp $
+# $OpenBSD: carp_3.sh,v 1.3 2024/01/05 10:37:54 anton Exp $
cleanup()
@@ -78,13 +78,13 @@ ifconfig carp$IFNO2 rdomain $RD2 192.168.0.1/24 \
#
# IFNO1 must become master
-sleep 3.1 # need 3 seconds to become master
+wait_until "ifconfig carp$IFNO1 | grep -q 'status: master'"
test sh -c "ifconfig carp$IFNO1 | grep -q 'status: master'"
test sh -c "ifconfig carp$IFNO2 | grep -q 'status: backup'"
# carpdemote must work
ifconfig -g ${IFGPREFIX}a carpdemote
-sleep 0.1
+wait_until "ifconfig carp$IFNO1 | grep -q 'status: backup'"
test sh -c "ifconfig carp$IFNO1 | grep -q 'status: backup'"
test sh -c "ifconfig carp$IFNO2 | grep -q 'status: master'"
diff --git a/regress/sys/netinet/carp/carp_4.sh b/regress/sys/netinet/carp/carp_4.sh
index 98c2d6a55a8..56eab1dddae 100644
--- a/regress/sys/netinet/carp/carp_4.sh
+++ b/regress/sys/netinet/carp/carp_4.sh
@@ -1,5 +1,5 @@
#!/bin/ksh
-# $OpenBSD: carp_4.sh,v 1.2 2023/10/19 18:36:41 anton Exp $
+# $OpenBSD: carp_4.sh,v 1.3 2024/01/05 10:37:54 anton Exp $
cleanup()
@@ -81,13 +81,13 @@ ifconfig carp$IFNO2 rdomain $RD2 lladdr $lladdr2 192.168.0.1/24 \
#
# IFNO1 must become master
-sleep 3.1 # need 3 seconds to become master
+wait_until "ifconfig carp$IFNO1 | grep -q 'status: master'"
test sh -c "ifconfig carp$IFNO1 | grep -q 'status: master'"
test sh -c "ifconfig carp$IFNO2 | grep -q 'status: backup'"
# carpdemote must work
ifconfig -g ${IFGPREFIX}a carpdemote
-sleep 0.1
+wait_until "ifconfig carp$IFNO1 | grep -q 'status: backup'"
test sh -c "ifconfig carp$IFNO1 | grep -q 'status: backup'"
test sh -c "ifconfig carp$IFNO2 | grep -q 'status: master'"
diff --git a/regress/sys/netinet/carp/carp_subr b/regress/sys/netinet/carp/carp_subr
index fb86ca6b67c..e3456c79df0 100644
--- a/regress/sys/netinet/carp/carp_subr
+++ b/regress/sys/netinet/carp/carp_subr
@@ -55,6 +55,19 @@ test()
fi
}
+wait_until() {
+ local _i=0
+
+ while [ "$_i" -lt 8 ]; do
+ sh -c "$@" && return 0
+ sleep 0.5
+ _i="$((_i + 1))"
+ done
+ echo timeout
+ return 1
+}
+
+
RDOMAINS=""
IFACE_NUMS=""
while getopts 'cvR:I:' ch "$@"; do