diff options
Diffstat (limited to 'src/shared/tests.c')
-rw-r--r-- | src/shared/tests.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/shared/tests.c b/src/shared/tests.c index f11b93bee7..be098b304c 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. */ |