]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tests: move unit files to units/ subdirectory
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 6 Dec 2019 20:51:59 +0000 (21:51 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 19 Mar 2020 15:23:27 +0000 (16:23 +0100)
We have a bazillion of those unit files, and keeping them all directly in tests/
has become rather unwieldy.

73 files changed:
src/resolve/test-dns-packet.c
src/shared/tests.c
src/shared/tests.h
src/test/test-bpf-firewall.c
src/test/test-cgroup-mask.c
src/test/test-cgroup-unit-default.c
src/test/test-engine.c
src/test/test-execute.c
src/test/test-journal-importer.c
src/test/test-path.c
src/test/test-sched-prio.c
src/test/test-umount.c
src/test/test-watch-pid.c
test/basic.target [deleted symlink]
test/meson.build
test/shutdown.target [deleted symlink]
test/sockets.target [deleted symlink]
test/sysinit.target [deleted symlink]
test/timers.target [deleted symlink]
test/units/a-conj.service [moved from test/a-conj.service with 100% similarity]
test/units/a.service [moved from test/a.service with 100% similarity]
test/units/b.service [moved from test/b.service with 100% similarity]
test/units/basic.target [new symlink]
test/units/c.service [moved from test/c.service with 100% similarity]
test/units/d.service [moved from test/d.service with 100% similarity]
test/units/daughter.service [moved from test/daughter.service with 100% similarity]
test/units/dml-discard-empty.service [moved from test/dml-discard-empty.service with 100% similarity]
test/units/dml-discard-set-ml.service [moved from test/dml-discard-set-ml.service with 100% similarity]
test/units/dml-discard.slice [moved from test/dml-discard.slice with 100% similarity]
test/units/dml-override-empty.service [moved from test/dml-override-empty.service with 100% similarity]
test/units/dml-override.slice [moved from test/dml-override.slice with 100% similarity]
test/units/dml-passthrough-empty.service [moved from test/dml-passthrough-empty.service with 100% similarity]
test/units/dml-passthrough-set-dml.service [moved from test/dml-passthrough-set-dml.service with 100% similarity]
test/units/dml-passthrough-set-ml.service [moved from test/dml-passthrough-set-ml.service with 100% similarity]
test/units/dml-passthrough.slice [moved from test/dml-passthrough.slice with 100% similarity]
test/units/dml.slice [moved from test/dml.slice with 100% similarity]
test/units/e.service [moved from test/e.service with 100% similarity]
test/units/end.service [moved from test/end.service with 100% similarity]
test/units/f.service [moved from test/f.service with 100% similarity]
test/units/g.service [moved from test/g.service with 100% similarity]
test/units/grandchild.service [moved from test/grandchild.service with 100% similarity]
test/units/h.service [moved from test/h.service with 100% similarity]
test/units/hello-after-sleep.target [moved from test/hello-after-sleep.target with 100% similarity]
test/units/hello.service [moved from test/hello.service with 100% similarity]
test/units/i.service [moved from test/i.service with 100% similarity]
test/units/loopy.service [moved from test/loopy.service with 100% similarity]
test/units/loopy.service.d/compat.conf [moved from test/loopy.service.d/compat.conf with 100% similarity]
test/units/loopy2.service [moved from test/loopy2.service with 100% similarity]
test/units/loopy3.service [moved from test/loopy3.service with 100% similarity]
test/units/loopy4.service [moved from test/loopy4.service with 100% similarity]
test/units/nomem.slice [moved from test/nomem.slice with 100% similarity]
test/units/nomemleaf.service [moved from test/nomemleaf.service with 100% similarity]
test/units/parent-deep.slice [moved from test/parent-deep.slice with 100% similarity]
test/units/parent.slice [moved from test/parent.slice with 100% similarity]
test/units/sched_idle_bad.service [moved from test/sched_idle_bad.service with 100% similarity]
test/units/sched_idle_ok.service [moved from test/sched_idle_ok.service with 100% similarity]
test/units/sched_rr_bad.service [moved from test/sched_rr_bad.service with 100% similarity]
test/units/sched_rr_change.service [moved from test/sched_rr_change.service with 100% similarity]
test/units/sched_rr_ok.service [moved from test/sched_rr_ok.service with 100% similarity]
test/units/shutdown.target [new symlink]
test/units/sleep.service [moved from test/sleep.service with 100% similarity]
test/units/sockets.target [new symlink]
test/units/son.service [moved from test/son.service with 100% similarity]
test/units/sysinit.target [new symlink]
test/units/testsuite.target [moved from test/testsuite.target with 100% similarity]
test/units/timers.target [new symlink]
test/units/unit-.service.d/10-override.conf [moved from test/unit-.service.d/10-override.conf with 100% similarity]
test/units/unit-with-.service.d/20-override.conf [moved from test/unit-with-.service.d/20-override.conf with 100% similarity]
test/units/unit-with-multiple-.service.d/20-override.conf [moved from test/unit-with-multiple-.service.d/20-override.conf with 100% similarity]
test/units/unit-with-multiple-.service.d/30-override.conf [moved from test/unit-with-multiple-.service.d/30-override.conf with 100% similarity]
test/units/unit-with-multiple-dashes.service [moved from test/unit-with-multiple-dashes.service with 100% similarity]
test/units/unit-with-multiple-dashes.service.d/10-override.conf [moved from test/unit-with-multiple-dashes.service.d/10-override.conf with 100% similarity]
test/units/unstoppable.service [moved from test/unstoppable.service with 100% similarity]

index 7c6346cb66a5066ee776f4aa221942504601b8b8..bdd96aa9a20241055f6fd0515714a8d10ddc9c39 100644 (file)
@@ -92,7 +92,6 @@ static void test_packet_from_file(const char* filename, bool canonical) {
 
 int main(int argc, char **argv) {
         int i, N;
-        _cleanup_free_ char *pkts_glob = NULL;
         _cleanup_globfree_ glob_t g = {};
         char **fnames;
 
@@ -102,7 +101,8 @@ int main(int argc, char **argv) {
                 N = argc - 1;
                 fnames = argv + 1;
         } else {
-                pkts_glob = path_join(get_testdata_dir(), "test-resolve/*.pkts");
+                _cleanup_free_ char *pkts_glob = NULL;
+                assert_se(get_testdata_dir("test-resolve/*.pkts", &pkts_glob) >= 0);
                 assert_se(glob(pkts_glob, GLOB_NOSORT, NULL, &g) == 0);
                 N = g.gl_pathc;
                 fnames = g.gl_pathv;
index 96b5b805a9678e514383924a4ef113a3d6f9da96..764e4656bb7a5d1e04af890ade7a70f207c56548 100644 (file)
@@ -58,21 +58,25 @@ static void load_testdata_env(void) {
                 setenv(*k, *v, 0);
 }
 
-const char* get_testdata_dir(void) {
-        const char *env;
+int get_testdata_dir(const char *suffix, char **ret) {
+        const char *dir;
+        char *p;
 
         load_testdata_env();
 
         /* if the env var is set, use that */
-        env = getenv("SYSTEMD_TEST_DATA");
-        if (!env)
-                env = SYSTEMD_TEST_DATA;
-        if (access(env, F_OK) < 0) {
-                fprintf(stderr, "ERROR: $SYSTEMD_TEST_DATA directory [%s] does not exist\n", env);
-                exit(EXIT_FAILURE);
-        }
+        dir = getenv("SYSTEMD_TEST_DATA");
+        if (!dir)
+                dir = SYSTEMD_TEST_DATA;
+        if (access(dir, F_OK) < 0)
+                return log_error_errno(errno, "ERROR: $SYSTEMD_TEST_DATA directory [%s] not accesible: %m", dir);
 
-        return env;
+        p = path_join(dir, suffix);
+        if (!p)
+                return log_oom();
+
+        *ret = p;
+        return 0;
 }
 
 const char* get_catalog_dir(void) {
index 5a6fd53f36b978f5725e5177d7a2b8acda65e3c1..6817ef4860653c98403cdc04ec5a8ae79aea5087 100644 (file)
@@ -20,7 +20,7 @@ static inline bool manager_errno_skip_test(int r) {
 
 char* setup_fake_runtime_dir(void);
 int enter_cgroup_subroot(char **ret_cgroup);
-const char* get_testdata_dir(void);
+int get_testdata_dir(const char *suffix, char **ret);
 const char* get_catalog_dir(void);
 bool slow_tests_enabled(void);
 void test_setup_logging(int level);
index fbaa349b450e240ed7d3311bdb6d59de7690aac4..71aed125583d34ad4a42588a19c7672275ef86ab 100644 (file)
@@ -48,7 +48,9 @@ int main(int argc, char *argv[]) {
         if (r == -ENOMEDIUM)
                 return log_tests_skipped("cgroupfs not available");
 
-        assert_se(set_unit_path(get_testdata_dir()) >= 0);
+        _cleanup_free_ char *unit_dir = NULL;
+        assert_se(get_testdata_dir("units", &unit_dir) >= 0);
+        assert_se(set_unit_path(unit_dir) >= 0);
         assert_se(runtime_dir = setup_fake_runtime_dir());
 
         r = bpf_program_new(BPF_PROG_TYPE_CGROUP_SKB, &p);
index 02c8549b4b653bf9878efb56e57689fc64e64f67..daafba4ef63a327fc35d2004ef98bfd4b9e115a2 100644 (file)
@@ -38,7 +38,9 @@ static int test_cgroup_mask(void) {
                 return log_tests_skipped("cgroupfs not available");
 
         /* Prepare the manager. */
-        assert_se(set_unit_path(get_testdata_dir()) >= 0);
+        _cleanup_free_ char *unit_dir = NULL;
+        assert_se(get_testdata_dir("units", &unit_dir) >= 0);
+        assert_se(set_unit_path(unit_dir) >= 0);
         assert_se(runtime_dir = setup_fake_runtime_dir());
         r = manager_new(UNIT_FILE_USER, MANAGER_TEST_RUN_BASIC, &m);
         if (IN_SET(r, -EPERM, -EACCES)) {
index 1286f11e4eb35b4af2a48cfcac6c178f27cd2786..372667041c12f9ee57c4f35b47bf0da42567b4f3 100644 (file)
@@ -22,7 +22,9 @@ static int test_default_memory_low(void) {
         if (r == -ENOMEDIUM)
                 return log_tests_skipped("cgroupfs not available");
 
-        assert_se(set_unit_path(get_testdata_dir()) >= 0);
+        _cleanup_free_ char *unit_dir = NULL;
+        assert_se(get_testdata_dir("units", &unit_dir) >= 0);
+        assert_se(set_unit_path(unit_dir) >= 0);
         assert_se(runtime_dir = setup_fake_runtime_dir());
         r = manager_new(UNIT_FILE_USER, MANAGER_TEST_RUN_BASIC, &m);
         if (IN_SET(r, -EPERM, -EACCES)) {
index b8351141fe2afc1a8719435ccc2d4026cdfa32b9..6465151b271d2511052348e836d97efbe1428e7f 100644 (file)
@@ -26,8 +26,11 @@ int main(int argc, char *argv[]) {
                 return log_tests_skipped("cgroupfs not available");
 
         /* prepare the test */
-        assert_se(set_unit_path(get_testdata_dir()) >= 0);
+        _cleanup_free_ char *unit_dir = NULL;
+        assert_se(get_testdata_dir("units", &unit_dir) >= 0);
+        assert_se(set_unit_path(unit_dir) >= 0);
         assert_se(runtime_dir = setup_fake_runtime_dir());
+
         r = manager_new(UNIT_FILE_USER, MANAGER_TEST_RUN_BASIC, &m);
         if (manager_errno_skip_test(r))
                 return log_tests_skipped_errno(r, "manager_new");
index 4e0fd7d5b4b7ce3da24518358419869304f54d3e..5a96b46a773244f81beac991e106a1bdde54d285 100644 (file)
@@ -806,7 +806,6 @@ static int run_tests(UnitFileScope scope, const test_entry tests[], char **patte
 
 int main(int argc, char *argv[]) {
         _cleanup_(rm_rf_physical_and_freep) char *runtime_dir = NULL;
-        _cleanup_free_ char *test_execute_path = NULL;
 
         static const test_entry user_tests[] = {
                 entry(test_exec_basic),
@@ -878,9 +877,10 @@ int main(int argc, char *argv[]) {
         if (r == -ENOMEDIUM)
                 return log_tests_skipped("cgroupfs not available");
 
+        _cleanup_free_ char *unit_dir = NULL;
+        assert_se(get_testdata_dir("test-execute/", &unit_dir) >= 0);
+        assert_se(set_unit_path(unit_dir) >= 0);
         assert_se(runtime_dir = setup_fake_runtime_dir());
-        test_execute_path = path_join(get_testdata_dir(), "test-execute");
-        assert_se(set_unit_path(test_execute_path) >= 0);
 
         /* Unset VAR1, VAR2 and VAR3 which are used in the PassEnvironment test
          * cases, otherwise (and if they are present in the environment),
index 7e898735c939e5259c57e43ebe1c1b9b9637a352..488335695618429ff73ff3c7a650f4087e14c3e2 100644 (file)
@@ -25,7 +25,7 @@ static void test_basic_parsing(void) {
         _cleanup_free_ char *journal_data_path = NULL;
         int r;
 
-        journal_data_path = path_join(get_testdata_dir(), "journal-data/journal-1.txt");
+        assert_se(get_testdata_dir("journal-data/journal-1.txt", &journal_data_path) >= 0);
         imp.fd = open(journal_data_path, O_RDONLY|O_CLOEXEC);
         assert_se(imp.fd >= 0);
 
@@ -56,7 +56,7 @@ static void test_bad_input(void) {
         _cleanup_free_ char *journal_data_path = NULL;
         int r;
 
-        journal_data_path = path_join(get_testdata_dir(), "journal-data/journal-2.txt");
+        assert_se(get_testdata_dir("journal-data/journal-1.txt", &journal_data_path) >= 0);
         imp.fd = open(journal_data_path, O_RDONLY|O_CLOEXEC);
         assert_se(imp.fd >= 0);
 
index 6ad222b5f928d60cac1303ed78d199aeea695055..830d5f261bc32647026174f89b5e049281f7d2fa 100644 (file)
@@ -251,7 +251,7 @@ int main(int argc, char *argv[]) {
 
         test_setup_logging(LOG_INFO);
 
-        test_path = path_join(get_testdata_dir(), "test-path");
+        assert_se(get_testdata_dir("test-path", &test_path) >= 0);
         assert_se(set_unit_path(test_path) >= 0);
         assert_se(runtime_dir = setup_fake_runtime_dir());
 
index cd4553784734f7cc0dca01089df7b31905887e13..da6d2a21e66cf14f2a506df086542c7e4ec69e68 100644 (file)
@@ -25,8 +25,11 @@ int main(int argc, char *argv[]) {
                 return log_tests_skipped("cgroupfs not available");
 
         /* prepare the test */
-        assert_se(set_unit_path(get_testdata_dir()) >= 0);
+        _cleanup_free_ char *unit_dir = NULL;
+        assert_se(get_testdata_dir("units", &unit_dir) >= 0);
+        assert_se(set_unit_path(unit_dir) >= 0);
         assert_se(runtime_dir = setup_fake_runtime_dir());
+
         r = manager_new(UNIT_FILE_USER, MANAGER_TEST_RUN_BASIC, &m);
         if (manager_errno_skip_test(r))
                 return log_tests_skipped_errno(r, "manager_new");
index 6ab5758edec6cd2110d7a2790a538bd294bce94f..b27b75b352c519d248b2c966419f92028e432cd8 100644 (file)
@@ -15,8 +15,10 @@ static void test_mount_points_list(const char *fname) {
 
         log_info("/* %s(\"%s\") */", __func__, fname ?: "/proc/self/mountinfo");
 
-        if (fname)
-                fname = testdata_fname = path_join(get_testdata_dir(), fname);
+        if (fname) {
+                assert_se(get_testdata_dir(fname, &testdata_fname) >= 0);
+                fname = testdata_fname;
+        }
 
         LIST_HEAD_INIT(mp_list_head);
         assert_se(mount_points_list_get(fname, &mp_list_head) >= 0);
@@ -37,8 +39,10 @@ static void test_swap_list(const char *fname) {
 
         log_info("/* %s(\"%s\") */", __func__, fname ?: "/proc/swaps");
 
-        if (fname)
-                fname = testdata_fname = path_join(get_testdata_dir(), fname);
+        if (fname) {
+                assert_se(get_testdata_dir(fname, &testdata_fname) >= 0);
+                fname = testdata_fname;
+        }
 
         LIST_HEAD_INIT(mp_list_head);
         assert_se(swap_list_get(fname, &mp_list_head) >= 0);
index bad289767d212b250ecc274ed2d2194e31e2ae4d..28ecffb0c0bb187adf7b063fe8c8d2d18617e7fe 100644 (file)
@@ -20,7 +20,10 @@ int main(int argc, char *argv[]) {
         if (r == -ENOMEDIUM)
                 return log_tests_skipped("cgroupfs not available");
 
-        assert_se(set_unit_path(get_testdata_dir()) >= 0);
+        _cleanup_free_ char *unit_dir = NULL;
+        assert_se(get_testdata_dir("units/", &unit_dir) >= 0);
+        assert_se(set_unit_path(unit_dir) >= 0);
+
         assert_se(runtime_dir = setup_fake_runtime_dir());
 
         assert_se(manager_new(UNIT_FILE_USER, MANAGER_TEST_RUN_BASIC, &m) >= 0);
diff --git a/test/basic.target b/test/basic.target
deleted file mode 120000 (symlink)
index 0612934..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../units/basic.target
\ No newline at end of file
index 2fbea31ccd9c76e406bebe772c6c713b04ab112a..59639d0b818cdd2d2391e840b3f15dc323b3265b 100644 (file)
@@ -1,49 +1,8 @@
 # SPDX-License-Identifier: LGPL-2.1+
 
 test_data_files = '''
-        a.service
-        a-conj.service
-        b.service
-        basic.target
-        c.service
-        d.service
-        daughter.service
-        dml.slice
-        dml-passthrough.slice
-        dml-passthrough-empty.service
-        dml-passthrough-set-dml.service
-        dml-passthrough-set-ml.service
-        dml-override.slice
-        dml-override-empty.service
-        dml-discard.slice
-        dml-discard-empty.service
-        dml-discard-set-ml.service
-        e.service
-        end.service
-        f.service
-        g.service
-        grandchild.service
-        h.service
-        hello-after-sleep.target
-        hello.service
-        hwdb.d/10-bad.hwdb
-        i.service
         journal-data/journal-1.txt
         journal-data/journal-2.txt
-        nomem.slice
-        nomemleaf.service
-        parent-deep.slice
-        parent.slice
-        sched_idle_bad.service
-        sched_idle_ok.service
-        sched_rr_bad.service
-        sched_rr_change.service
-        sched_rr_ok.service
-        shutdown.target
-        sleep.service
-        sockets.target
-        son.service
-        sysinit.target
         test-execute/exec-basic.service
         test-execute/exec-ambientcapabilities-merge-nfsnobody.service
         test-execute/exec-ambientcapabilities-merge-nobody.service
@@ -194,14 +153,6 @@ test_data_files = '''
         test-umount/example.swaps
         test-umount/garbled.mountinfo
         test-umount/rhbug-1554943.mountinfo
-        testsuite.target
-        timers.target
-        unit-with-.service.d/20-override.conf
-        unit-with-multiple-.service.d/20-override.conf
-        unit-with-multiple-.service.d/30-override.conf
-        unit-with-multiple-dashes.service
-        unit-with-multiple-dashes.service.d/10-override.conf
-        unstoppable.service
 '''.split()
 
 if conf.get('ENABLE_RESOLVE') == 1
@@ -232,6 +183,10 @@ if install_tests
         endforeach
 endif
 
+install_subdir(
+        'units',
+        install_dir : testsdir + '/testdata/')
+
 ############################################################
 
 rule_syntax_check_py = find_program('rule-syntax-check.py')
diff --git a/test/shutdown.target b/test/shutdown.target
deleted file mode 120000 (symlink)
index 1a3c2ee..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../units/shutdown.target
\ No newline at end of file
diff --git a/test/sockets.target b/test/sockets.target
deleted file mode 120000 (symlink)
index 8ff86a0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../units/sockets.target
\ No newline at end of file
diff --git a/test/sysinit.target b/test/sysinit.target
deleted file mode 120000 (symlink)
index 3301338..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../units/sysinit.target
\ No newline at end of file
diff --git a/test/timers.target b/test/timers.target
deleted file mode 120000 (symlink)
index 576d47f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../units/timers.target
\ No newline at end of file
similarity index 100%
rename from test/a.service
rename to test/units/a.service
similarity index 100%
rename from test/b.service
rename to test/units/b.service
diff --git a/test/units/basic.target b/test/units/basic.target
new file mode 120000 (symlink)
index 0000000..a882b72
--- /dev/null
@@ -0,0 +1 @@
+../../units/basic.target
\ No newline at end of file
similarity index 100%
rename from test/c.service
rename to test/units/c.service
similarity index 100%
rename from test/d.service
rename to test/units/d.service
similarity index 100%
rename from test/dml.slice
rename to test/units/dml.slice
similarity index 100%
rename from test/e.service
rename to test/units/e.service
similarity index 100%
rename from test/end.service
rename to test/units/end.service
similarity index 100%
rename from test/f.service
rename to test/units/f.service
similarity index 100%
rename from test/g.service
rename to test/units/g.service
similarity index 100%
rename from test/h.service
rename to test/units/h.service
similarity index 100%
rename from test/hello.service
rename to test/units/hello.service
similarity index 100%
rename from test/i.service
rename to test/units/i.service
similarity index 100%
rename from test/loopy.service
rename to test/units/loopy.service
similarity index 100%
rename from test/nomem.slice
rename to test/units/nomem.slice
similarity index 100%
rename from test/parent.slice
rename to test/units/parent.slice
diff --git a/test/units/shutdown.target b/test/units/shutdown.target
new file mode 120000 (symlink)
index 0000000..8e58943
--- /dev/null
@@ -0,0 +1 @@
+../../units/shutdown.target
\ No newline at end of file
similarity index 100%
rename from test/sleep.service
rename to test/units/sleep.service
diff --git a/test/units/sockets.target b/test/units/sockets.target
new file mode 120000 (symlink)
index 0000000..745480a
--- /dev/null
@@ -0,0 +1 @@
+../../units/sockets.target
\ No newline at end of file
similarity index 100%
rename from test/son.service
rename to test/units/son.service
diff --git a/test/units/sysinit.target b/test/units/sysinit.target
new file mode 120000 (symlink)
index 0000000..9d10e5b
--- /dev/null
@@ -0,0 +1 @@
+../../units/sysinit.target
\ No newline at end of file
diff --git a/test/units/timers.target b/test/units/timers.target
new file mode 120000 (symlink)
index 0000000..7718a12
--- /dev/null
@@ -0,0 +1 @@
+../../units/timers.target
\ No newline at end of file