platform/tests: skip tests if "unshare(CLONE_NEWNET|CLONE_NEWNS)" fails

Inside a podman container (without `--priviledged`) we don't have
permissions for "unshare(CLONE_NEWNET|CLONE_NEWNS)".

It's not useful to fail tests in environments where they cannot run.
Skip them.

(cherry picked from commit ecdbb1ab84)
This commit is contained in:
Thomas Haller
2021-02-15 20:36:53 +01:00
parent 67b0deffac
commit 4113e93b3b

View File

@@ -2563,7 +2563,20 @@ main(int argc, char **argv)
if (unshare(CLONE_NEWNET | CLONE_NEWNS) != 0) {
errsv = errno;
g_error("unshare(CLONE_NEWNET|CLONE_NEWNS) failed with %s (%d)",
if (errsv == EPERM) {
#ifdef REQUIRE_ROOT_TESTS
g_print("Fail test: unshare(CLONE_NEWNET|CLONE_NEWNS) failed with %s (%d)\n",
nm_strerror_native(errsv),
errsv);
return EXIT_FAILURE;
#else
g_print("Skipping test: unshare(CLONE_NEWNET|CLONE_NEWNS) failed with %s (%d)\n",
nm_strerror_native(errsv),
errsv);
return g_test_run();
#endif
}
g_error("Fail test: unshare(CLONE_NEWNET|CLONE_NEWNS) failed with %s (%d)",
nm_strerror_native(errsv),
errsv);
}