]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
t_net.sh: wait for NO-CARRIER bit to settle before starting test
authorAntonio Quartulli <a@unstable.cc>
Thu, 19 Sep 2019 07:28:20 +0000 (09:28 +0200)
committerGert Doering <gert@greenie.muc.de>
Thu, 19 Sep 2019 07:44:04 +0000 (09:44 +0200)
Interfaces of type tun are marked as NO-CARRIER when no process is
attached to them. However, this bit gets set with some delay after
creation.

For this reason, it is better to wait for the bit to settle before
starting any test, otherwise any timing influence on the test may lead
to inconsistencies due to the NO-CARRIER bit randomly being or not in
the snapshot output taken by t_net.sh.

This patch add a 'sleep 1' command right after creation of the
interface, to give the NO-CARRIER bit a chance to settle.

This issue has been witnessed on a buildbot that is
apparently slowler than average to run the unit tests.

Signed-off-by: Antonio Quartulli <a@unstable.cc>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20190919072820.9913-1-a@unstable.cc>
URL: https://www.mail-archive.com/search?l=mid&q=20190919072820.9913-1-a@unstable.cc
Signed-off-by: Gert Doering <gert@greenie.muc.de>
tests/t_net.sh

index 18799d127834526c312688a53ad207c562022c99..97e947ab5fe2e5eb7b2eb84fb1a84fa639057abd 100755 (executable)
@@ -34,6 +34,13 @@ reload_dummy()
 {
     $RUN_SUDO $openvpn --dev $IFACE --dev-type tun --rmtun >/dev/null
     $RUN_SUDO $openvpn --dev $IFACE --dev-type tun --mktun >/dev/null
+
+    # it seems that tun devices will settle on NO-CARRIER while not connected to
+    # any process, but this won't happen immediately. To avoid having the
+    # NO-CARRIER bit appear in the middle of the tests - which would compromise
+    # the results - let's wait 1 sec here for it to settle.
+    sleep 1
+
     if [ $? -ne 0 ]; then
         echo "can't create interface $IFACE"
         exit 1