Merge pull request #10138 from yuwata/test-check-container
test: skip several tests when running in container
This commit is contained in:
commit
3bdce0eac0
|
@ -337,6 +337,8 @@ static void test_exec_temporaryfilesystem(Manager *m) {
|
|||
|
||||
static void test_exec_systemcallfilter(Manager *m) {
|
||||
#if HAVE_SECCOMP
|
||||
int r;
|
||||
|
||||
if (!is_seccomp_available()) {
|
||||
log_notice("Seccomp not available, skipping %s", __func__);
|
||||
return;
|
||||
|
@ -346,6 +348,13 @@ static void test_exec_systemcallfilter(Manager *m) {
|
|||
test(m, "exec-systemcallfilter-not-failing2.service", 0, CLD_EXITED);
|
||||
test(m, "exec-systemcallfilter-failing.service", SIGSYS, CLD_KILLED);
|
||||
test(m, "exec-systemcallfilter-failing2.service", SIGSYS, CLD_KILLED);
|
||||
|
||||
r = find_binary("python3", NULL);
|
||||
if (r < 0) {
|
||||
log_notice_errno(r, "Skipping remaining tests in %s, could not find python3 binary: %m", __func__);
|
||||
return;
|
||||
}
|
||||
|
||||
test(m, "exec-systemcallfilter-with-errno-name.service", errno_from_name("EILSEQ"), CLD_EXITED);
|
||||
test(m, "exec-systemcallfilter-with-errno-number.service", 255, CLD_EXITED);
|
||||
#endif
|
||||
|
@ -353,11 +362,19 @@ static void test_exec_systemcallfilter(Manager *m) {
|
|||
|
||||
static void test_exec_systemcallerrornumber(Manager *m) {
|
||||
#if HAVE_SECCOMP
|
||||
int r;
|
||||
|
||||
if (!is_seccomp_available()) {
|
||||
log_notice("Seccomp not available, skipping %s", __func__);
|
||||
return;
|
||||
}
|
||||
|
||||
r = find_binary("python3", NULL);
|
||||
if (r < 0) {
|
||||
log_notice_errno(r, "Skipping %s, could not find python3 binary: %m", __func__);
|
||||
return;
|
||||
}
|
||||
|
||||
test(m, "exec-systemcallerrornumber-name.service", errno_from_name("EACCES"), CLD_EXITED);
|
||||
test(m, "exec-systemcallerrornumber-number.service", 255, CLD_EXITED);
|
||||
#endif
|
||||
|
@ -623,14 +640,24 @@ static void test_exec_privatenetwork(Manager *m) {
|
|||
|
||||
static void test_exec_oomscoreadjust(Manager *m) {
|
||||
test(m, "exec-oomscoreadjust-positive.service", 0, CLD_EXITED);
|
||||
|
||||
if (detect_container() > 0) {
|
||||
log_notice("Testing in container, skipping remaining tests in %s", __func__);
|
||||
return;
|
||||
}
|
||||
test(m, "exec-oomscoreadjust-negative.service", 0, CLD_EXITED);
|
||||
}
|
||||
|
||||
static void test_exec_ioschedulingclass(Manager *m) {
|
||||
test(m, "exec-ioschedulingclass-none.service", 0, CLD_EXITED);
|
||||
test(m, "exec-ioschedulingclass-idle.service", 0, CLD_EXITED);
|
||||
test(m, "exec-ioschedulingclass-realtime.service", 0, CLD_EXITED);
|
||||
test(m, "exec-ioschedulingclass-best-effort.service", 0, CLD_EXITED);
|
||||
|
||||
if (detect_container() > 0) {
|
||||
log_notice("Testing in container, skipping remaining tests in %s", __func__);
|
||||
return;
|
||||
}
|
||||
test(m, "exec-ioschedulingclass-realtime.service", 0, CLD_EXITED);
|
||||
}
|
||||
|
||||
static void test_exec_unsetenvironment(Manager *m) {
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include "strv.h"
|
||||
#include "user-util.h"
|
||||
#include "util.h"
|
||||
#include "virt.h"
|
||||
|
||||
static void test_chase_symlinks(void) {
|
||||
_cleanup_free_ char *result = NULL;
|
||||
|
@ -493,6 +494,7 @@ static void test_touch_file(void) {
|
|||
struct stat st;
|
||||
const char *a;
|
||||
usec_t test_mtime;
|
||||
int r;
|
||||
|
||||
test_uid = geteuid() == 0 ? 65534 : getuid();
|
||||
test_gid = geteuid() == 0 ? 65534 : getgid();
|
||||
|
@ -542,7 +544,12 @@ static void test_touch_file(void) {
|
|||
|
||||
if (geteuid() == 0) {
|
||||
a = strjoina(p, "/cdev");
|
||||
assert_se(mknod(a, 0775 | S_IFCHR, makedev(0, 0)) >= 0);
|
||||
r = mknod(a, 0775 | S_IFCHR, makedev(0, 0));
|
||||
if (r < 0 && errno == EPERM && detect_container() > 0) {
|
||||
log_notice("Running in unprivileged container? Skipping remaining tests in %s", __func__);
|
||||
return;
|
||||
}
|
||||
assert_se(r >= 0);
|
||||
assert_se(touch_file(a, false, test_mtime, test_uid, test_gid, 0640) >= 0);
|
||||
assert_se(lstat(a, &st) >= 0);
|
||||
assert_se(st.st_uid == test_uid);
|
||||
|
|
|
@ -405,12 +405,17 @@ static void test_rename_process_now(const char *p, int ret) {
|
|||
log_info("comm = <%s>", comm);
|
||||
assert_se(strneq(comm, p, TASK_COMM_LEN-1));
|
||||
|
||||
assert_se(get_process_cmdline(0, 0, false, &cmdline) >= 0);
|
||||
r = get_process_cmdline(0, 0, false, &cmdline);
|
||||
assert_se(r >= 0);
|
||||
/* we cannot expect cmdline to be renamed properly without privileges */
|
||||
if (geteuid() == 0) {
|
||||
if (r == 0 && detect_container() > 0)
|
||||
log_info("cmdline = <%s> (not verified, Running in unprivileged container?)", cmdline);
|
||||
else {
|
||||
log_info("cmdline = <%s>", cmdline);
|
||||
assert_se(strneq(p, cmdline, STRLEN("test-process-util")));
|
||||
assert_se(startswith(p, cmdline));
|
||||
}
|
||||
} else
|
||||
log_info("cmdline = <%s> (not verified)", cmdline);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue