From: Jan Synacek Date: Wed, 10 Dec 2014 09:20:11 +0000 (+0100) Subject: test: fix some tests when running inside a container X-Git-Tag: v218~29 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=0eb3cc88504b5d8f740764047ac5162b67992386 test: fix some tests when running inside a container --- diff --git a/src/test/test-execute.c b/src/test/test-execute.c index 85deb27f4..60466f0d3 100644 --- a/src/test/test-execute.c +++ b/src/test/test-execute.c @@ -164,7 +164,7 @@ int main(int argc, char *argv[]) { r = manager_new(SYSTEMD_USER, true, &m); if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT)) { printf("Skipping test: manager_new: %s", strerror(-r)); - return -EXIT_TEST_SKIP; + return EXIT_TEST_SKIP; } assert_se(r >= 0); assert_se(manager_startup(m, NULL, NULL) >= 0); diff --git a/src/test/test-util.c b/src/test/test-util.c index 20e711d41..fe54586ee 100644 --- a/src/test/test-util.c +++ b/src/test/test-util.c @@ -35,6 +35,7 @@ #include "def.h" #include "fileio.h" #include "conf-parser.h" +#include "virt.h" static void test_streq_ptr(void) { assert_se(streq_ptr(NULL, NULL)); @@ -544,7 +545,8 @@ static void test_get_process_comm(void) { assert_se(r >= 0 || r == -EACCES); log_info("self strlen(environ): '%zd'", strlen(env)); - assert_se(get_ctty_devnr(1, &h) == -ENOENT); + if (!detect_container(NULL)) + assert_se(get_ctty_devnr(1, &h) == -ENOENT); getenv_for_pid(1, "PATH", &i); log_info("pid1 $PATH: '%s'", strna(i)); diff --git a/test/udev-test.pl b/test/udev-test.pl index 14f11df8a..3e05b6177 100755 --- a/test/udev-test.pl +++ b/test/udev-test.pl @@ -27,6 +27,7 @@ my $udev_dev = "test/dev"; my $udev_run = "test/run"; my $udev_rules_dir = "$udev_run/udev/rules.d"; my $udev_rules = "$udev_rules_dir/udev-test.rules"; +my $EXIT_TEST_SKIP = 77; my @tests = ( { @@ -1485,6 +1486,13 @@ if (!($<==0)) { exit; } +# skip the test when running in a container +system("systemd-detect-virt", "-c", "-q"); +if ($? >> 8 == 0) { + print "Running in a container, skipping the test.\n"; + exit($EXIT_TEST_SKIP); +} + udev_setup(); my $test_num = 1;