const char *p;
const uid_t uid = getuid();
const gid_t gid = getgid();
+ int r;
umask(022);
assert_se(mkdtemp_malloc(NULL, &t) >= 0);
/* We now apply an xattr to the dir, and check it again */
p = strjoina(t, "/dir");
- assert_se(setxattr(p, "system.posix_acl_access", acl, sizeof(acl), 0) >= 0);
+ r = RET_NERRNO(setxattr(p, "system.posix_acl_access", acl, sizeof(acl), 0));
+ if (ERRNO_IS_NEG_NOT_SUPPORTED(r))
+ return (void) log_tests_skipped_errno(r, "no acl supported on /tmp");
+
+ assert_se(r >= 0);
assert_se(setxattr(p, "system.posix_acl_default", default_acl, sizeof(default_acl), 0) >= 0);
assert_se(lstat(p, &st) >= 0);
assert_se(S_ISDIR(st.st_mode));
static char *user_runtime_unit_dir = NULL;
static bool can_unshare;
+static bool have_net_dummy;
static unsigned n_ran_tests = 0;
STATIC_DESTRUCTOR_REGISTER(user_runtime_unit_dir, freep);
static void test_exec_privatenetwork(Manager *m) {
int r;
+ if (!have_net_dummy)
+ return (void)log_notice("Skipping %s, dummy network interface not available", __func__);
+
r = find_executable("ip", NULL);
if (r < 0) {
log_notice_errno(r, "Skipping %s, could not find ip binary: %m", __func__);
static void test_exec_networknamespacepath(Manager *m) {
int r;
+ if (!have_net_dummy)
+ return (void)log_notice("Skipping %s, dummy network interface not available", __func__);
+
r = find_executable("ip", NULL);
if (r < 0) {
log_notice_errno(r, "Skipping %s, could not find ip binary: %m", __func__);
return log_tests_skipped("/sys is mounted read-only");
/* Create dummy network interface for testing PrivateNetwork=yes */
- (void) system("ip link add dummy-test-exec type dummy");
+ have_net_dummy = system("ip link add dummy-test-exec type dummy") == 0;
- /* Create a network namespace and a dummy interface in it for NetworkNamespacePath= */
- (void) system("ip netns add test-execute-netns");
- (void) system("ip netns exec test-execute-netns ip link add dummy-test-ns type dummy");
+ if (have_net_dummy) {
+ /* Create a network namespace and a dummy interface in it for NetworkNamespacePath= */
+ (void) system("ip netns add test-execute-netns");
+ (void) system("ip netns exec test-execute-netns ip link add dummy-test-ns type dummy");
+ }
return EXIT_SUCCESS;
}
static int outro(void) {
- (void) system("ip link del dummy-test-exec");
- (void) system("ip netns del test-execute-netns");
+ if (have_net_dummy) {
+ (void) system("ip link del dummy-test-exec");
+ (void) system("ip netns del test-execute-netns");
+ }
+
(void) rmdir(PRIVATE_UNIT_DIR);
return EXIT_SUCCESS;