chiark / gitweb /
treewide: no need to negate errno for log_*_errno()
[elogind.git] / src / test / test-ns.c
index 102b005880d57a7069513d71d2705a3cfd53cce0..e66d97ff33e8d550e777856fc74129080646202d 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/fs.h>
 
 #include "namespace.h"
+#include "execute.h"
 #include "log.h"
 
 int main(int argc, char *argv[]) {
@@ -34,7 +35,7 @@ int main(int argc, char *argv[]) {
                 NULL
         };
 
-        const char * const readable[] = {
+        const char * const readonly[] = {
                 "/",
                 "/usr",
                 "/boot",
@@ -47,9 +48,24 @@ int main(int argc, char *argv[]) {
         };
 
         int r;
+        char tmp_dir[] = "/tmp/systemd-private-XXXXXX",
+             var_tmp_dir[] = "/var/tmp/systemd-private-XXXXXX";
 
-        if ((r = setup_namespace((char**) writable, (char**) readable, (char**) inaccessible, true, MS_SHARED)) < 0) {
-                log_error("Failed to setup namespace: %s", strerror(-r));
+        assert_se(mkdtemp(tmp_dir));
+        assert_se(mkdtemp(var_tmp_dir));
+
+        r = setup_namespace((char **) writable,
+                            (char **) readonly,
+                            (char **) inaccessible,
+                            tmp_dir,
+                            var_tmp_dir,
+                            NULL,
+                            true,
+                            PROTECT_HOME_NO,
+                            PROTECT_SYSTEM_NO,
+                            0);
+        if (r < 0) {
+                log_error_errno(r, "Failed to setup namespace: %m");
                 return 1;
         }