X-Git-Url: https://ruderich.org/simon/gitweb/?p=coloredstderr%2Fcoloredstderr.git;a=blobdiff_plain;f=tests%2Fexample_error.c;h=83b7cd30779a1d1e9f65ea8aedf90b4148283a29;hp=0ed8746b26ff3138e9938826cdc6e24369777304;hb=8a65b4486febf00e3fad5bafc3773a811e675a4c;hpb=34b3b931362c8d0fce96e390bb8b1ea94d6a4101 diff --git a/tests/example_error.c b/tests/example_error.c index 0ed8746..83b7cd3 100644 --- a/tests/example_error.c +++ b/tests/example_error.c @@ -1,7 +1,7 @@ /* * Test error() and error_at_line(). Non-standard, GNU only. * - * Copyright (C) 2013 Simon Ruderich + * Copyright (C) 2013-2015 Simon Ruderich * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,12 +20,16 @@ #include #define _GNU_SOURCE /* for program_invocation_name */ -#include -#include #include #include +#include +#include +#include +#include +#include #include "../src/compiler.h" +#include "example.h" void (*error_print_progname)(void); @@ -37,26 +41,41 @@ static void print_progname(void) { int main(int argc unused, char **argv unused) { - program_invocation_name = "./example_error"; + pid_t pid; + + char name[] = "./example_error"; + program_invocation_name = name; error(0, 0, ""); error_at_line(0, 0, "file", 42, ""); + FORKED_TEST(pid) { error(1, 0, ""); } + FORKED_TEST(pid) { error_at_line(1, 0, "file", 42, ""); } error(0, ENOMEM, ""); error_at_line(0, ENOMEM, "file", 42, ""); error_at_line(0, ENOMEM, "file", 42, ""); + FORKED_TEST(pid) { error(1, ENOMEM, ""); } + FORKED_TEST(pid) { error_at_line(1, ENOMEM, "file", 42, ""); } + + fflush(stdout); + printf("\n\n"); + fflush(stdout); error_print_progname = print_progname; error_one_per_line = 1; error(0, 0, ""); error_at_line(0, 0, "file", 42, ""); + FORKED_TEST(pid) { error(1, 0, ""); } + FORKED_TEST(pid) { error_at_line(1, 0, "file", 42, ""); } error(0, ENOMEM, ""); error_at_line(0, ENOMEM, "file", 42, ""); error_at_line(0, ENOMEM, "file", 42, ""); + FORKED_TEST(pid) { error(1, ENOMEM, ""); } - /* Exit codes are not tested. */ + error_one_per_line = 0; + FORKED_TEST(pid) { error_at_line(1, ENOMEM, "file", 42, ""); } return EXIT_SUCCESS; }