summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2021-02-15 13:49:19 +0100
committerThomas Haller <thaller@redhat.com>2021-02-15 13:58:48 +0100
commitf591aa41c6acb9c890e57c822058b5e47b8aeca6 (patch)
tree0ad127176a7ab4ad7b1b5a979385526d1e443237
parentac1c66eb343693cb63b8624b4be6088e1583670e (diff)
downloadNetworkManager-f591aa41c6acb9c890e57c822058b5e47b8aeca6.tar.gz
tests: add "/bin:/sbin" to "$PATH" for unit tests
We call `tc` from iproute2, which commonly is at "/sbin/tc". That might not be in the "$PATH" of a regular user, and consequently we fail to run the test. Work around that by always adding "/bin" and "/sbin" to the $PATH.
-rw-r--r--shared/nm-utils/nm-test-utils.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/shared/nm-utils/nm-test-utils.h b/shared/nm-utils/nm-test-utils.h
index 6b41c11ee9..d51f972ed4 100644
--- a/shared/nm-utils/nm-test-utils.h
+++ b/shared/nm-utils/nm-test-utils.h
@@ -624,6 +624,23 @@ __nmtst_init(int * argc,
g_setenv("G_MESSAGES_DEBUG", "all", TRUE);
}
+ /* "tc" is in /sbin, which might not be in $PATH of a regular user. Unconditionally
+ * add "/bin" and "/sbin" to $PATH for all tests. */
+ {
+ static char *path_new;
+ const char * path_old;
+
+ g_assert(!path_new);
+
+ path_old = g_getenv("PATH");
+ path_new = g_strjoin("",
+ path_old ?: "",
+ (nm_str_is_empty(path_old) ? "" : ":"),
+ "/bin:/sbin",
+ NULL);
+ g_setenv("PATH", path_new, TRUE);
+ }
+
/* Delay messages until we setup logging. */
for (i = 0; i < debug_messages->len; i++)
__NMTST_LOG(g_message, "%s", g_array_index(debug_messages, const char *, i));