]> ruderich.org/simon Gitweb - coloredstderr/coloredstderr.git/blobdiff - tests/example.c
tests/example.c: Use errno = ENOMEM.
[coloredstderr/coloredstderr.git] / tests / example.c
index 545f3cb195a3765cca9ed7d8049dfff60149bc40..fc5c01ecd73c4bf07a60305c4c4622b65892998a 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <errno.h>
 
+#include "../src/compiler.h"
 
-int main(int argc, char **argv) {
-    (void)argv;
 
+int main(int argc, char **argv unused) {
     fprintf(stderr, "write to stderr: %d\n", argc);
     printf("write to stdout\n");
     fflush(stdout);
 
-    errno = 0;
+    errno = ENOMEM;
     perror("error!");
 
     write(STDERR_FILENO, "write to stderr 2", 17);
@@ -50,5 +52,17 @@ int main(int argc, char **argv) {
     write(42, "stderr ...\n", 11);
     write(471, "more on stdout\n", 15);
 
+    /* Glibc uses __overflow() for this ... */
+    putc_unlocked('x', stderr);
+    putc_unlocked('\n', stdout);
+
+    /* Test invalid stuff. */
+    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;
 }