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.
This commit is contained in:
Thomas Haller
2021-02-15 13:49:19 +01:00
parent ac1c66eb34
commit f591aa41c6

View File

@@ -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));