From c6ec3ad2eb8d451af61a6180047918092c71656e Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 8 Apr 2016 18:54:05 +0200 Subject: [PATCH 1/1] tests: override XDG_RUNTIME_DIR where we use the user runtime dir We don#t really support systems where XDG_RUNTIME_DIR is not supported for elogind --user. Hence, let's always set our own XDG_RUNTIME_DIR for tests that involve elogind --user, so that we know it is set, and that it doesn't polute the user's actual runtime dir. --- src/basic/rm-rf.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/basic/rm-rf.h b/src/basic/rm-rf.h index 6d0326891..40b5b527d 100644 --- a/src/basic/rm-rf.h +++ b/src/basic/rm-rf.h @@ -30,3 +30,12 @@ typedef enum RemoveFlags { int rm_rf_children(int fd, RemoveFlags flags, struct stat *root_dev); int rm_rf(const char *path, RemoveFlags flags); + +/* Useful for usage with _cleanup_(), destroys a directory and frees the pointer */ +static inline void rm_rf_and_free(char *p) { + if (!p) + return; + (void) rm_rf(p, REMOVE_ROOT); + free(p); +} +DEFINE_TRIVIAL_CLEANUP_FUNC(char*, rm_rf_and_free); -- 2.30.2