summary refs log tree commit diff
path: root/stdio-common
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-09-27 00:00:42 +0000
committerUlrich Drepper <drepper@redhat.com>2005-09-27 00:00:42 +0000
commitb5d839c996d7236ed5788296b4d723e67ec4fdb8 (patch)
treea5220f793e6180e189b99ab8c59401ab01a26f71 /stdio-common
parent9a5933834ba8f1289024c1ab13e1cd711b5ec3af (diff)
downloadglibc-b5d839c996d7236ed5788296b4d723e67ec4fdb8.tar.gz
glibc-b5d839c996d7236ed5788296b4d723e67ec4fdb8.tar.xz
glibc-b5d839c996d7236ed5788296b4d723e67ec4fdb8.zip
[BZ #713]
2005-09-26  Ulrich Drepper  <drepper@redhat.com>
	[BZ #713]
	* libio/iofgets.c: Treat N==1 correctly.
	* libio/iofgets_u.c: Likewise.
	* libio/iofgetws.c: Likewise.
	* libio/iofgetws_u.c: Likewise.
	* stdio-common/Makefile (tests): Add tst-fgets.
	* stdio-common/tst-fgets.c: New file.
Diffstat (limited to 'stdio-common')
-rw-r--r--stdio-common/Makefile2
-rw-r--r--stdio-common/tst-fgets.c20
2 files changed, 21 insertions, 1 deletions
diff --git a/stdio-common/Makefile b/stdio-common/Makefile
index 39c7d9db52..dbf7d165e9 100644
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -53,7 +53,7 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \
 	 scanf11 scanf12 tst-tmpnam tst-cookie tst-obprintf tst-sscanf \
 	 tst-swprintf tst-fseek tst-fmemopen test-vfprintf tst-gets \
 	 tst-perror tst-sprintf tst-rndseek tst-fdopen tst-fphex bug14 bug15 \
-	 tst-popen tst-unlockedio tst-fmemopen2 tst-put-error
+	 tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets
 
 test-srcs = tst-unbputc tst-printf
 
diff --git a/stdio-common/tst-fgets.c b/stdio-common/tst-fgets.c
new file mode 100644
index 0000000000..b8e205c7dc
--- /dev/null
+++ b/stdio-common/tst-fgets.c
@@ -0,0 +1,20 @@
+/* Derived from the test case in
+   http://sourceware.org/bugzilla/show_bug.cgi?id=713.  */
+#include <stdio.h>
+
+static int
+do_test (void)
+{
+  FILE *fp = fmemopen ("hello", 5, "r");
+  char buf[2];
+  char *bp = fgets (buf, sizeof (buf), fp);
+  printf ("fgets: %s\n", bp == buf ? "OK" : "ERROR");
+  int res = bp != buf;
+  bp = fgets_unlocked (buf, sizeof (buf), fp);
+  printf ("fgets_unlocked: %s\n", bp == buf ? "OK" : "ERROR");
+  res |= bp != buf;
+  return res;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"