about summary refs log tree commit diff
path: root/stdio-common/tst-put-error.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-09-04 20:10:35 +0000
committerUlrich Drepper <drepper@redhat.com>2005-09-04 20:10:35 +0000
commit34c5e4a1f1de2e755311855c1b15d1f35a1bd61f (patch)
treecbc269d34a1496450decab9563c1fcd087b98f03 /stdio-common/tst-put-error.c
parentf2cd432663701ce4d346b7b3232ad74e98c90aab (diff)
downloadglibc-34c5e4a1f1de2e755311855c1b15d1f35a1bd61f.tar.gz
glibc-34c5e4a1f1de2e755311855c1b15d1f35a1bd61f.tar.xz
glibc-34c5e4a1f1de2e755311855c1b15d1f35a1bd61f.zip
* stdio-common/Makefile (tests): Add tst-put-error.
	* stdio-common/tst-put-error.c: New file.
	* libio/fileops.c (_IO_new_file_xsputn): If overflow fails and no more
	data would have to be written signal error.
	* libio/oldfileops.c (_IO_old_file_xsputn): Likewise.

	* libio/fileops.c (_IO_new_file_overflow): Use NULL not 0.
Diffstat (limited to 'stdio-common/tst-put-error.c')
-rw-r--r--stdio-common/tst-put-error.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/stdio-common/tst-put-error.c b/stdio-common/tst-put-error.c
new file mode 100644
index 0000000000..a93008c8c5
--- /dev/null
+++ b/stdio-common/tst-put-error.c
@@ -0,0 +1,33 @@
+#include <errno.h>
+#include <error.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+
+static int
+do_test (void)
+{
+  char tmpl[] = "/tmp/tst-put-error.XXXXXX";
+  int fd = mkstemp (tmpl);
+  if (fd == -1)
+    error (EXIT_FAILURE, errno, "cannot create temporary file");
+  FILE *fp = fdopen (fd, "w");
+  if (fp == NULL)
+    error (EXIT_FAILURE, errno, "fdopen");
+  setlinebuf (fp);
+  close (fd);
+  unlink ("aaa");
+  int n = fprintf (fp, "hello world\n");
+  printf ("fprintf = %d\n", n);
+  if (n >= 0)
+    error (EXIT_FAILURE, 0, "first fprintf succeeded");
+  n = fprintf (fp, "hello world\n");
+  printf ("fprintf = %d\n", n);
+  if (n >= 0)
+    error (EXIT_FAILURE, 0, "second fprintf succeeded");
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"