From: Jérémie Galarneau Date: Thu, 24 Oct 2019 21:06:17 +0000 (-0400) Subject: Tests: namespace tests fail to build on older libc X-Git-Tag: v2.12.0-rc1~276 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=93d0d1f7ded46987ea752b6fcfe81e3281fc533c;ds=sidebyside Tests: namespace tests fail to build on older libc The namespace tests fail to build on older libcs that don't define the various namespace clone flags. To circumvent this problem, local definitions from Linux's sched.h are added. The kernel's support of the various namespaces is tested by the test runner. Hence, it is not a problem to build these test application against a kernel that isn't configured to support (some of) those namespaces; the applications are not invoked for unsupported namespaces. Acked-by: Michael Jeanson Signed-off-by: Jérémie Galarneau --- diff --git a/tests/utils/testapp/gen-ns-events/gen-ns-events.c b/tests/utils/testapp/gen-ns-events/gen-ns-events.c index eb1ebf5b5..6957e3fc7 100644 --- a/tests/utils/testapp/gen-ns-events/gen-ns-events.c +++ b/tests/utils/testapp/gen-ns-events/gen-ns-events.c @@ -36,6 +36,34 @@ #define LTTNG_PROC_NS_PATH_MAX 40 +/* + * The runner of this test validates that the kernel supports the + * namespace for which it is invoked. However, these defines are added + * to allow tests to run on systems that support a given namespace, + * but that use a libc that doesn't define its associated clone flag. + */ +#ifndef CLONE_NEWNS +#define CLONE_NEWNS 0x00020000 +#endif +#ifndef CLONE_NEWCGROUP +#define CLONE_NEWCGROUP 0x02000000 +#endif +#ifndef CLONE_NEWUTS +#define CLONE_NEWUTS 0x04000000 +#endif +#ifndef CLONE_NEWIPC +#define CLONE_NEWIPC 0x08000000 +#endif +#ifndef CLONE_NEWUSER +#define CLONE_NEWUSER 0x10000000 +#endif +#ifndef CLONE_NEWPID +#define CLONE_NEWPID 0x20000000 +#endif +#ifndef CLONE_NEWNET +#define CLONE_NEWNET 0x40000000 +#endif + static int debug = 0; static char *ns_opt = NULL; static char *before_unshare_wait_file_path = NULL; diff --git a/tests/utils/testapp/gen-ust-events-ns/gen-ust-events-ns.c b/tests/utils/testapp/gen-ust-events-ns/gen-ust-events-ns.c index 58a206632..7b02a03ea 100644 --- a/tests/utils/testapp/gen-ust-events-ns/gen-ust-events-ns.c +++ b/tests/utils/testapp/gen-ust-events-ns/gen-ust-events-ns.c @@ -38,6 +38,34 @@ #define LTTNG_PROC_NS_PATH_MAX 40 +/* + * The runner of this test validates that the kernel supports the + * namespace for which it is invoked. However, these defines are added + * to allow tests to run on systems that support a given namespace, + * but that use a libc that doesn't define its associated clone flag. + */ +#ifndef CLONE_NEWNS +#define CLONE_NEWNS 0x00020000 +#endif +#ifndef CLONE_NEWCGROUP +#define CLONE_NEWCGROUP 0x02000000 +#endif +#ifndef CLONE_NEWUTS +#define CLONE_NEWUTS 0x04000000 +#endif +#ifndef CLONE_NEWIPC +#define CLONE_NEWIPC 0x08000000 +#endif +#ifndef CLONE_NEWUSER +#define CLONE_NEWUSER 0x10000000 +#endif +#ifndef CLONE_NEWPID +#define CLONE_NEWPID 0x20000000 +#endif +#ifndef CLONE_NEWNET +#define CLONE_NEWNET 0x40000000 +#endif + static int nr_iter = 100; static int debug = 0; static char *ns_opt = NULL;