X-Git-Url: https://ruderich.org/simon/gitweb/?p=coloredstderr%2Fcoloredstderr.git;a=blobdiff_plain;f=tests%2Fexample.c;h=f78d466185724ccc4baa723d0907d29fdb70528f;hp=20f731000b936b91ce276bbe9c4e1608c4e173b4;hb=8a65b4486febf00e3fad5bafc3773a811e675a4c;hpb=fb9548453fbc0dedc8f145e8468fc601de784c32 diff --git a/tests/example.c b/tests/example.c index 20f7310..f78d466 100644 --- a/tests/example.c +++ b/tests/example.c @@ -1,7 +1,7 @@ /* * Test basic features of coloredstderr. * - * 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 @@ -17,22 +17,53 @@ * along with this program. If not, see . */ +#include + #include #include #include #include +#include "../src/compiler.h" +#include "example.h" + -int main(int argc, char **argv) { +int main(int argc, char **argv unused) { fprintf(stderr, "write to stderr: %d\n", argc); printf("write to stdout\n"); fflush(stdout); - write(STDERR_FILENO, "write to stderr 2", 17); - write(STDOUT_FILENO, "write to stdout 2", 17); + errno = ENOMEM; + perror("error!"); + + xwrite(STDERR_FILENO, "write to stderr 2", 17); + xwrite(STDOUT_FILENO, "write to stdout 2", 17); fprintf(stderr, "\n"); fprintf(stdout, "\n"); + fflush(stdout); + + /* Check usage of tracked_fds_list (at least in parts). */ + xdup2(STDERR_FILENO, 471); + xdup2(471, 42); + xwrite(471, "more on stderr\n", 15); + close(471); + xdup2(STDOUT_FILENO, 471); + xwrite(42, "stderr ...\n", 11); + xwrite(471, "more on stdout\n", 15); + + /* Glibc uses __overflow() for this ... */ + putc_unlocked('x', stderr); + putc_unlocked('\n', stdout); + + /* Test invalid stuff. */ + write(-3, "foo", 3); + close(-42); + close(-4711); + /* Can't test this, results in a segfault with the "normal" fclose(). */ + /*fclose(NULL);*/ + dup(-12); + dup2(12, -42); return EXIT_SUCCESS; }