From: Martin Pitt Date: Wed, 15 Feb 2017 07:52:17 +0000 (+0100) Subject: test: show error message if $SYSTEMD_TEST_DATA does not exist X-Git-Tag: v233~82^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c60b6ddafbd462378073f85e4690455fc3908ad2;p=thirdparty%2Fsystemd.git test: show error message if $SYSTEMD_TEST_DATA does not exist Rename get_exe_relative_testdata_dir() to get_testdata_dir() and move the env var check into that, so that everything interesting happens at the same place. --- diff --git a/src/shared/tests.c b/src/shared/tests.c index f11b93bee72..be098b304cb 100644 --- a/src/shared/tests.c +++ b/src/shared/tests.c @@ -36,11 +36,22 @@ char* setup_fake_runtime_dir(void) { return p; } -const char* get_exe_relative_testdata_dir(void) { +const char* get_testdata_dir(void) { + const char *env; _cleanup_free_ char *exedir = NULL; /* convenience: caller does not need to free result */ static char testdir[PATH_MAX]; + /* if the env var is set, use that */ + env = getenv("SYSTEMD_TEST_DATA"); + if (env) { + if (access(env, F_OK) >= 0) + return env; + + fputs("ERROR: $SYSTEMD_TEST_DATA directory does not exist\n", stderr); + exit(1); + } + assert_se(readlink_and_make_absolute("/proc/self/exe", &exedir) >= 0); /* Check if we're running from the builddir. If so, use the compiled in path. */ diff --git a/src/shared/tests.h b/src/shared/tests.h index 0100b489374..927b9fc2bb7 100644 --- a/src/shared/tests.h +++ b/src/shared/tests.h @@ -20,4 +20,4 @@ ***/ char* setup_fake_runtime_dir(void); -const char* get_exe_relative_testdata_dir(void); +const char* get_testdata_dir(void); diff --git a/src/test/test-helper.h b/src/test/test-helper.h index 02608434be4..7c9eff24835 100644 --- a/src/test/test-helper.h +++ b/src/test/test-helper.h @@ -42,5 +42,5 @@ -ENOMEDIUM /* cannot determine cgroup */ \ ) -#define TEST_DATA_DIR(subdir) \ - strjoina(getenv("SYSTEMD_TEST_DATA") ?: get_exe_relative_testdata_dir(), subdir) +#define TEST_DATA_DIR(subdir) \ + strjoina(get_testdata_dir(), subdir)