From c6878637502b1717a110a9a7e8bba32a8583fcdf Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sat, 4 Apr 2015 11:52:57 +0200 Subject: util: rework rm_rf() logic - Move to its own file rm-rf.c - Change parameters into a single flags parameter - Remove "honour sticky" logic, it's unused these days --- src/test/test-conf-files.c | 4 ++-- src/test/test-copy.c | 9 +++++---- src/test/test-execute.c | 3 ++- src/test/test-path-lookup.c | 3 ++- src/test/test-path-util.c | 3 ++- src/test/test-path.c | 12 +++++++++--- src/test/test-util.c | 7 ++++--- 7 files changed, 26 insertions(+), 15 deletions(-) (limited to 'src/test') diff --git a/src/test/test-conf-files.c b/src/test/test-conf-files.c index 894c7f742f..01ece022c1 100644 --- a/src/test/test-conf-files.c +++ b/src/test/test-conf-files.c @@ -26,7 +26,7 @@ #include "macro.h" #include "strv.h" #include "util.h" - +#include "rm-rf.h" static void setup_test_dir(char *tmp_dir, const char *files, ...) { va_list ap; @@ -74,7 +74,7 @@ static void test_conf_files_list(bool use_root) { assert_se(streq_ptr(found_files[1], expect_b)); assert_se(found_files[2] == NULL); - assert_se(rm_rf_dangerous(tmp_dir, false, true, false) == 0); + assert_se(rm_rf(tmp_dir, REMOVE_ROOT|REMOVE_PHYSICAL) == 0); } int main(int argc, char **argv) { diff --git a/src/test/test-copy.c b/src/test/test-copy.c index 5c96f61005..403d85bff0 100644 --- a/src/test/test-copy.c +++ b/src/test/test-copy.c @@ -26,6 +26,7 @@ #include "strv.h" #include "macro.h" #include "util.h" +#include "rm-rf.h" static void test_copy_file(void) { _cleanup_free_ char *buf = NULL; @@ -86,8 +87,8 @@ static void test_copy_tree(void) { "link2", "dir1/file"); char **p, **link; - rm_rf_dangerous(copy_dir, false, true, false); - rm_rf_dangerous(original_dir, false, true, false); + (void) rm_rf(copy_dir, REMOVE_ROOT|REMOVE_PHYSICAL); + (void) rm_rf(original_dir, REMOVE_ROOT|REMOVE_PHYSICAL); STRV_FOREACH(p, files) { char *f = strjoina(original_dir, *p); @@ -128,8 +129,8 @@ static void test_copy_tree(void) { assert_se(copy_tree(original_dir, copy_dir, false) < 0); assert_se(copy_tree("/tmp/inexistent/foo/bar/fsdoi", copy_dir, false) < 0); - rm_rf_dangerous(copy_dir, false, true, false); - rm_rf_dangerous(original_dir, false, true, false); + (void) rm_rf(copy_dir, REMOVE_ROOT|REMOVE_PHYSICAL); + (void) rm_rf(original_dir, REMOVE_ROOT|REMOVE_PHYSICAL); } int main(int argc, char *argv[]) { diff --git a/src/test/test-execute.c b/src/test/test-execute.c index 428fd32600..c6210aaa87 100644 --- a/src/test/test-execute.c +++ b/src/test/test-execute.c @@ -24,6 +24,7 @@ #include "util.h" #include "macro.h" #include "mkdir.h" +#include "rm-rf.h" typedef void (*test_function_t)(Manager *m); @@ -72,7 +73,7 @@ static void test_exec_workingdirectory(Manager *m) { test(m, "exec-workingdirectory.service", 0, CLD_EXITED); - rm_rf_dangerous("/tmp/test-exec_workingdirectory", false, true, false); + (void) rm_rf("/tmp/test-exec_workingdirectory", REMOVE_ROOT|REMOVE_PHYSICAL); } static void test_exec_personality(Manager *m) { diff --git a/src/test/test-path-lookup.c b/src/test/test-path-lookup.c index a951b01b97..66b0b99741 100644 --- a/src/test/test-path-lookup.c +++ b/src/test/test-path-lookup.c @@ -24,6 +24,7 @@ #include "path-lookup.h" #include "log.h" #include "strv.h" +#include "rm-rf.h" static void test_paths(SystemdRunningAs running_as, bool personal) { char template[] = "/tmp/test-path-lookup.XXXXXXX"; @@ -42,7 +43,7 @@ static void test_paths(SystemdRunningAs running_as, bool personal) { assert_se(strv_contains(lp.unit_path, exists)); assert_se(strv_contains(lp.unit_path, not)); - assert_se(rm_rf_dangerous(template, false, true, false) >= 0); + assert_se(rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL) >= 0); } static void print_generator_paths(SystemdRunningAs running_as) { diff --git a/src/test/test-path-util.c b/src/test/test-path-util.c index 6396fcb398..759515e564 100644 --- a/src/test/test-path-util.c +++ b/src/test/test-path-util.c @@ -26,6 +26,7 @@ #include "util.h" #include "macro.h" #include "strv.h" +#include "rm-rf.h" #define test_path_compare(a, b, result) { \ assert_se(path_compare(a, b) == result); \ @@ -256,7 +257,7 @@ static void test_strv_resolve(void) { assert_se(streq(search_dirs[1], "/dir2")); assert_se(streq(search_dirs[2], "/dir2")); - assert_se(rm_rf_dangerous(tmp_dir, false, true, false) == 0); + assert_se(rm_rf(tmp_dir, REMOVE_ROOT|REMOVE_PHYSICAL) == 0); } static void test_path_startswith(void) { diff --git a/src/test/test-path.c b/src/test/test-path.c index a3295aa997..219b585b7c 100644 --- a/src/test/test-path.c +++ b/src/test/test-path.c @@ -26,6 +26,7 @@ #include "macro.h" #include "strv.h" #include "mkdir.h" +#include "rm-rf.h" typedef void (*test_function_t)(Manager *m); @@ -47,7 +48,12 @@ static int setup_test(Manager **m) { assert_se(manager_startup(tmp, NULL, NULL) >= 0); STRV_FOREACH(test_path, tests_path) { - rm_rf_dangerous(strjoina("/tmp/test-path_", *test_path), false, true, false); + _cleanup_free_ char *p = NULL; + + p = strjoin("/tmp/test-path_", *test_path, NULL); + assert_se(p); + + (void) rm_rf(p, REMOVE_ROOT|REMOVE_PHYSICAL); } *m = tmp; @@ -104,7 +110,7 @@ static void check_stop_unlink(Manager *m, Unit *unit, const char *test_path, con } assert_se(UNIT_VTABLE(unit)->stop(unit) >= 0); - rm_rf_dangerous(test_path, false, true, false); + (void) rm_rf(test_path, REMOVE_ROOT|REMOVE_PHYSICAL); } static void test_path_exists(Manager *m) { @@ -228,7 +234,7 @@ static void test_path_makedirectory_directorymode(Manager *m) { assert_se((s.st_mode & S_IRWXO) == 0004); assert_se(UNIT_VTABLE(unit)->stop(unit) >= 0); - rm_rf_dangerous(test_path, false, true, false); + (void) rm_rf(test_path, REMOVE_ROOT|REMOVE_PHYSICAL); } int main(int argc, char *argv[]) { diff --git a/src/test/test-util.c b/src/test/test-util.c index d32ddd3a68..e9d1522a65 100644 --- a/src/test/test-util.c +++ b/src/test/test-util.c @@ -31,6 +31,7 @@ #include "util.h" #include "mkdir.h" +#include "rm-rf.h" #include "strv.h" #include "def.h" #include "fileio.h" @@ -1017,7 +1018,7 @@ static void test_readlink_and_make_absolute(void) { free(r); assert_se(unlink(name_alias) >= 0); - assert_se(rm_rf_dangerous(tempdir, false, true, false) >= 0); + assert_se(rm_rf(tempdir, REMOVE_ROOT|REMOVE_PHYSICAL) >= 0); } static void test_read_one_char(void) { @@ -1274,8 +1275,8 @@ static void test_execute_directory(void) { assert_se(access("it_works2", F_OK) >= 0); assert_se(access("failed", F_OK) < 0); - rm_rf_dangerous(template_lo, false, true, false); - rm_rf_dangerous(template_hi, false, true, false); + (void) rm_rf(template_lo, REMOVE_ROOT|REMOVE_PHYSICAL); + (void) rm_rf(template_hi, REMOVE_ROOT|REMOVE_PHYSICAL); } static void test_unquote_first_word(void) { -- cgit v1.2.3-54-g00ecf