#include <stdbool.h>
#include <err.h>
#include <stdio.h>
+#include <stdlib.h>
#include "mlmmj.h"
#include "wrappers.h"
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 =