[systemd-devel] [PATCH v2] test: fix some tests when running inside a container

Lennart Poettering lennart at poettering.net
Wed Dec 10 04:35:14 PST 2014


On Wed, 10.12.14 10:20, Jan Synacek (jsynacek at redhat.com) wrote:

Applied!

Thanks!

> ---
> v2:
> * don't remove the assert, run in if not in a container
> 
>  src/test/test-execute.c | 2 +-
>  src/test/test-util.c    | 4 +++-
>  test/udev-test.pl       | 8 ++++++++
>  3 files changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/src/test/test-execute.c b/src/test/test-execute.c
> index 85deb27..60466f0 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 20e711d..fe54586 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 14f11df..3e05b61 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;
> -- 
> 1.9.3
> 
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list