chiark / gitweb /
test-unit-file: return error without dumping core on permission error
[elogind.git] / src / test / test-unit-file.c
index 31b0fb2665582d2251d0078a722577d6c7a76219..2075e8611551766ed45a137c76a89cb1c3041741 100644 (file)
@@ -36,7 +36,7 @@
 #include "strv.h"
 #include "fileio.h"
 
-static void test_unit_file_get_set(void) {
+static int test_unit_file_get_set(void) {
         int r;
         Hashmap *h;
         Iterator i;
@@ -46,13 +46,17 @@ static void test_unit_file_get_set(void) {
         assert(h);
 
         r = unit_file_get_list(UNIT_FILE_SYSTEM, NULL, h);
-        log_info("unit_file_get_list: %s", strerror(-r));
-        assert(r >= 0);
+        log_full(r == 0 ? LOG_INFO : LOG_ERR,
+                 "unit_file_get_list: %s", strerror(-r));
+        if (r < 0)
+                return EXIT_FAILURE;
 
         HASHMAP_FOREACH(p, h, i)
                 printf("%s = %s\n", p->path, unit_file_state_to_string(p->state));
 
         unit_file_list_free(h);
+
+        return 0;
 }
 
 static void check_execcommand(ExecCommand *c,
@@ -211,11 +215,11 @@ static void test_config_parse_exec(void) {
 
 
 static void test_load_env_file_1(void) {
-        char _cleanup_strv_free_ **data = NULL;
+        _cleanup_strv_free_ char **data = NULL;
         int r;
 
         char name[] = "/tmp/test-load-env-file.XXXXXX";
-        int _cleanup_close_ fd = mkstemp(name);
+        _cleanup_close_ int fd = mkstemp(name);
         assert(fd >= 0);
         assert_se(write(fd, env_file_1, sizeof(env_file_1)) == sizeof(env_file_1));
 
@@ -232,11 +236,11 @@ static void test_load_env_file_1(void) {
 }
 
 static void test_load_env_file_2(void) {
-        char _cleanup_strv_free_ **data = NULL;
+        _cleanup_strv_free_ char **data = NULL;
         int r;
 
         char name[] = "/tmp/test-load-env-file.XXXXXX";
-        int _cleanup_close_ fd = mkstemp(name);
+        _cleanup_close_ int fd = mkstemp(name);
         assert(fd >= 0);
         assert_se(write(fd, env_file_2, sizeof(env_file_2)) == sizeof(env_file_2));
 
@@ -248,11 +252,11 @@ static void test_load_env_file_2(void) {
 }
 
 static void test_load_env_file_3(void) {
-        char _cleanup_strv_free_ **data = NULL;
+        _cleanup_strv_free_ char **data = NULL;
         int r;
 
         char name[] = "/tmp/test-load-env-file.XXXXXX";
-        int _cleanup_close_ fd = mkstemp(name);
+        _cleanup_close_ int fd = mkstemp(name);
         assert(fd >= 0);
         assert_se(write(fd, env_file_3, sizeof(env_file_3)) == sizeof(env_file_3));
 
@@ -263,11 +267,11 @@ static void test_load_env_file_3(void) {
 }
 
 static void test_load_env_file_4(void) {
-        char _cleanup_strv_free_ **data = NULL;
+        _cleanup_strv_free_ char **data = NULL;
         int r;
 
         char name[] = "/tmp/test-load-env-file.XXXXXX";
-        int _cleanup_close_ fd = mkstemp(name);
+        _cleanup_close_ int fd = mkstemp(name);
         assert(fd >= 0);
         assert_se(write(fd, env_file_4, sizeof(env_file_4)) == sizeof(env_file_4));
 
@@ -295,7 +299,7 @@ static void test_install_printf(void) {
         InstallInfo i3 = {name3, path3, user};
         InstallInfo i4 = {name3, path3, NULL};
 
-        char _cleanup_free_ *mid, *bid, *host;
+        _cleanup_free_ char *mid, *bid, *host;
 
         assert_se((mid = specifier_machine_id('m', NULL, NULL)));
         assert_se((bid = specifier_boot_id('b', NULL, NULL)));
@@ -303,8 +307,8 @@ static void test_install_printf(void) {
 
 #define expect(src, pattern, result)                                    \
         do {                                                            \
-                char _cleanup_free_ *t = install_full_printf(&src, pattern); \
-                char _cleanup_free_                                     \
+                _cleanup_free_ char *t = install_full_printf(&src, pattern); \
+                _cleanup_free_ char                                     \
                         *d1 = strdup(i.name),                           \
                         *d2 = strdup(i.path),                           \
                         *d3 = strdup(i.user);                           \
@@ -351,11 +355,12 @@ static void test_install_printf(void) {
 #pragma GCC diagnostic pop
 
 int main(int argc, char *argv[]) {
+        int r;
 
         log_parse_environment();
         log_open();
 
-        test_unit_file_get_set();
+        r = test_unit_file_get_set();
         test_config_parse_exec();
         test_load_env_file_1();
         test_load_env_file_2();
@@ -363,5 +368,5 @@ int main(int argc, char *argv[]) {
         test_load_env_file_4();
         test_install_printf();
 
-        return 0;
+        return r;
 }