]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
tests: err_set_file is not portable
authorBaptiste Daroussin <bapt@FreeBSD.org>
Thu, 9 Dec 2021 12:56:53 +0000 (13:56 +0100)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Thu, 9 Dec 2021 12:56:53 +0000 (13:56 +0100)
Use atf facilities instead

tests/mlmmj.c

index 0e74564be869203a57a976528490669fad3fd8c7..7ce4ed75df409290c18ab9d127daeeb874288743 100644 (file)
@@ -28,6 +28,7 @@
 #include <stdbool.h>
 #include <err.h>
 #include <stdio.h>
+#include <stdlib.h>
 
 #include "mlmmj.h"
 #include "wrappers.h"
@@ -108,64 +109,59 @@ ATF_TC_BODY(statctrl, tc)
 ATF_TC_BODY(mlmmj_list, tc)
 {
        struct mlmmj_list list;
-       FILE *f = fopen("err.log", "w+");
-       ATF_CHECK(f != NULL);
        mlmmj_list_init(&list);
        list.dir = "list";
-       err_set_file(f);
-       ATF_CHECK(mlmmj_list_open(&list) == false);
-       fflush(f);
-       if (!atf_utils_compare_file("err.log", "mlmmj: Unable to open 'list'\n")) {
-               atf_utils_cat_file("err.log", "err.log> ");
-               atf_tc_fail("Missing error message");
+       pid_t p = atf_utils_fork();
+       if (p == 0) {
+               ATF_CHECK(mlmmj_list_open(&list) == false);
+               exit(0);
        }
+       atf_utils_wait(p, 0, "", "mlmmj: Unable to open 'list'\n");
 
-       rewind(f);
-       ftruncate(fileno(f), 0);
        init_ml(false);
        mlmmj_list_init(&list);
        list.dir = "list";
-       ATF_CHECK(mlmmj_list_open(&list) == false);
-       fflush(f);
-       if (!atf_utils_compare_file("err.log", "mlmmj: Missing list address\n")) {
-               atf_utils_cat_file("err.log", "err.log> ");
-               atf_tc_fail("Missing error message for missing listaddress");
+       p = atf_utils_fork();
+       if (p == 0) {
+               ATF_CHECK(mlmmj_list_open(&list) == false);
+               exit (0);
        }
+       atf_utils_wait(p, 0, "", "mlmmj: Missing list address\n");
 
-       rewind(f);
-       ftruncate(fileno(f), 0);
        FILE *fp = fopen("list/control/listaddress", "w+");
        ATF_CHECK(fp != NULL);
        fputs("test", fp);
        fflush(fp);
        mlmmj_list_init(&list);
        list.dir = "list";
-       ATF_CHECK(mlmmj_list_open(&list) == false);
-       fflush(f);
-       if (!atf_utils_compare_file("err.log", "mlmmj: test: is not a valid mailing list address, missing '@'\n")) {
-               atf_utils_cat_file("err.log", "err.log> ");
-               atf_tc_fail("Missing invalid address error");
+       p = atf_utils_fork();
+       if (p == 0) {
+               ATF_CHECK(mlmmj_list_open(&list) == false);
+               exit (0);
        }
+       atf_utils_wait(p, 0, "", "mlmmj: test: is not a valid mailing list address, missing '@'\n");
 
        rewind(fp);
        ftruncate(fileno(fp), 0);
        fputs("test@test", fp);
        fclose(fp);
-       rewind(f);
-       ftruncate(fileno(f), 0);
        mlmmj_list_init(&list);
        list.dir = "list";
-       ATF_CHECK(mlmmj_list_open(&list) == true);
-       ATF_CHECK_STREQ_MSG(list.delim, "+", "Invalid delimiter");
-
-       fp = fopen("list/control/delimiter", "w");
-       fputs("#bla#", fp);
-       fclose(fp);
-       mlmmj_list_init(&list);
-       list.dir = "list";
-       ATF_CHECK(mlmmj_list_open(&list) == true);
-       ATF_CHECK_STREQ_MSG(list.delim, "#bla#", "Invalid delimiter");
-       fclose(f);
+       p = atf_utils_fork();
+       if (p == 0) {
+               ATF_CHECK(mlmmj_list_open(&list) == true);
+               ATF_CHECK_STREQ_MSG(list.delim, "+", "Invalid delimiter");
+
+               fp = fopen("list/control/delimiter", "w");
+               fputs("#bla#", fp);
+               fclose(fp);
+               mlmmj_list_init(&list);
+               list.dir = "list";
+               ATF_CHECK(mlmmj_list_open(&list) == true);
+               ATF_CHECK_STREQ_MSG(list.delim, "#bla#", "Invalid delimiter");
+               exit (0);
+       }
+       atf_utils_wait(p, 0, "", "");
 }
 
 static const char *formatted_text1 =