]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: show error message if $SYSTEMD_TEST_DATA does not exist
authorMartin Pitt <martin@piware.de>
Wed, 15 Feb 2017 07:52:17 +0000 (08:52 +0100)
committerMartin Pitt <martin@piware.de>
Thu, 16 Feb 2017 20:36:31 +0000 (21:36 +0100)
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.

src/shared/tests.c
src/shared/tests.h
src/test/test-helper.h

index f11b93bee72567237b638d2511a33a593d75ed83..be098b304cbb05c777828b4ff6675d754249a9e6 100644 (file)
@@ -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. */
index 0100b48937458d5adb6c41250e7f901b5b55f787..927b9fc2bb7d78e28a9e6fe4ab0136e33402abfe 100644 (file)
@@ -20,4 +20,4 @@
 ***/
 
 char* setup_fake_runtime_dir(void);
-const char* get_exe_relative_testdata_dir(void);
+const char* get_testdata_dir(void);
index 02608434be4c49464a5b218078e09ff8642fbd3f..7c9eff248358147048df56b586fe92bf6f54d15f 100644 (file)
@@ -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)