Tests: namespace tests fail to build on older libc
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 24 Oct 2019 21:06:17 +0000 (17:06 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 24 Oct 2019 21:14:55 +0000 (17:14 -0400)
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 <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
tests/utils/testapp/gen-ns-events/gen-ns-events.c
tests/utils/testapp/gen-ust-events-ns/gen-ust-events-ns.c

index eb1ebf5b5a65b8a945779497b3327519501733e4..6957e3fc7cdc125405d905a5aea85b9a84f805d6 100644 (file)
 
 #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;
index 58a2066322ac79ed3695cc4382bc62bcac3fd478..7b02a03ea9a3aadc6ae547b971ac78220fadaf48 100644 (file)
 
 #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;
This page took 0.035787 seconds and 4 git commands to generate.