X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;ds=inline;f=tests%2Fexample.c;h=75ab5afaa12259b0018d2865c3aa80084ea8115e;hb=b52ae7942bd7e7648a3998364e8d7bc9f21c38e6;hp=20f731000b936b91ce276bbe9c4e1608c4e173b4;hpb=fb9548453fbc0dedc8f145e8468fc601de784c32;p=coloredstderr%2Fcoloredstderr.git
diff --git a/tests/example.c b/tests/example.c
index 20f7310..75ab5af 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-2014 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;
}