]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
t_client: Allow to force FAIL on prerequisite fails
authorFrank Lichtenheld <frank@lichtenheld.com>
Fri, 22 Jul 2022 13:49:02 +0000 (15:49 +0200)
committerGert Doering <gert@greenie.muc.de>
Thu, 25 Aug 2022 20:29:07 +0000 (22:29 +0200)
In automated tests we want the build to fail if the
worker node is configured incorrectly.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20220722134902.22092-1-frank@lichtenheld.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg24723.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
(cherry picked from commit 79932b94513303567fdd5d1c4e0abb79e6642b6e)

tests/t_client.sh.in

index 294546be5807fecefe1b5e47f190a7e0afcbdfb4..465c3a33d20dd862abae24036844946fb83ffe99 100755 (executable)
 # - for "ping6" checks: fping6 binary in $PATH
 #
 
+# by changing this to 1 we can force automated builds to fail
+# that are expected to have all the prerequisites
+TCLIENT_SKIP_RC="${TCLIENT_SKIP_RC:-77}"
+
 srcdir="${srcdir:-.}"
 top_builddir="${top_builddir:-..}"
 if [ -r "${top_builddir}"/t_client.rc ] ; then
@@ -21,25 +25,25 @@ elif [ -r "${srcdir}"/t_client.rc ] ; then
 else
     echo "$0: cannot find 't_client.rc' in build dir ('${top_builddir}')" >&2
     echo "$0: or source directory ('${srcdir}'). SKIPPING TEST." >&2
-    exit 77
+    exit "${TCLIENT_SKIP_RC}"
 fi
 
 # Check for external dependencies
 which fping > /dev/null
 if [ $? -ne 0 ]; then
     echo "$0: fping is not available in \$PATH" >&2
-    exit 77
+    exit "${TCLIENT_SKIP_RC}"
 fi
 which fping6 > /dev/null
 if [ $? -ne 0 ]; then
     echo "$0: fping6 is not available in \$PATH" >&2
-    exit 77
+    exit "${TCLIENT_SKIP_RC}"
 fi
 
 KILL_EXEC=`which kill`
 if [ $? -ne 0 ]; then
     echo "$0: kill not found in \$PATH" >&2
-    exit 77
+    exit "${TCLIENT_SKIP_RC}"
 fi
 
 if [ ! -x "${top_builddir}/src/openvpn/openvpn" ]
@@ -56,12 +60,12 @@ fi
 
 if [ -z "$CA_CERT" ] ; then
     echo "CA_CERT not defined in 't_client.rc'. SKIP test." >&2
-    exit 77
+    exit "${TCLIENT_SKIP_RC}"
 fi
 
 if [ -z "$TEST_RUN_LIST" ] ; then
     echo "TEST_RUN_LIST empty, no tests defined.  SKIP test." >&2
-    exit 77
+    exit "${TCLIENT_SKIP_RC}"
 fi
 
 # Ensure PREFER_KSU is in a known state
@@ -91,7 +95,7 @@ else
     then
         echo "$0: this test must run be as root, or RUN_SUDO=... " >&2
         echo "      must be set correctly in 't_client.rc'. SKIP." >&2
-        exit 77
+        exit "${TCLIENT_SKIP_RC}"
     else
         # We have to use sudo. Make sure that we (hopefully) do not have
         # to ask the users password during the test. This is done to
@@ -101,7 +105,7 @@ else
            echo "$0: $RUN_SUDO $KILL_EXEC -0 succeeded, good."
        else
            echo "$0: $RUN_SUDO $KILL_EXEC -0 failed, cannot go on. SKIP." >&2
-           exit 77
+           exit "${TCLIENT_SKIP_RC}"
        fi
     fi
 fi