diff options
author | Ulrich Drepper <drepper@redhat.com> | 2007-07-08 04:41:34 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2007-07-08 04:41:34 +0000 |
commit | 0923a2c896f09795cca4a6d800a336a56b0ee42c (patch) | |
tree | 10038ab54362ef2ee4ab5384e39dacce92d18d9e /stdio-common/bug19.c | |
parent | e9055017f6d2015c4c74c94b1c2bf59968db223f (diff) | |
download | glibc-0923a2c896f09795cca4a6d800a336a56b0ee42c.tar glibc-0923a2c896f09795cca4a6d800a336a56b0ee42c.tar.gz glibc-0923a2c896f09795cca4a6d800a336a56b0ee42c.tar.bz2 glibc-0923a2c896f09795cca4a6d800a336a56b0ee42c.zip |
* stdio-common/vfscanf.c (_IO_vfscanf): Add additional test for EOF
in loop to look for conversion specifier to avoid testing of
wrong errno value.
* stdio-common/Makefile (tests): Add bug18, bug18a, bug19, bug19a.
* stdio-common/bug18a.c: New file.
* stdio-common/bug19.c: New file.
* stdio-common/bug19a.c: New file.
Diffstat (limited to 'stdio-common/bug19.c')
-rw-r--r-- | stdio-common/bug19.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/stdio-common/bug19.c b/stdio-common/bug19.c new file mode 100644 index 0000000000..e083304bda --- /dev/null +++ b/stdio-common/bug19.c @@ -0,0 +1,58 @@ +#include <assert.h> +#include <errno.h> +#include <stdio.h> + +#ifndef CHAR +# define CHAR char +# define L(str) str +# define FPUTS fputs +# define FSCANF fscanf +#endif + + +static int +do_test (void) +{ + FILE *fp = tmpfile (); + if (fp == NULL) + { + puts ("cannot open file"); + return 1; + } + + FPUTS (L("7-11"), fp); + rewind (fp); + + printf("setting errno to EINTR\n"); + errno = EINTR; + + printf("checking sscanf\n"); + + int i, j, n; + + i = j = n = 0; + FSCANF (fp, L(" %i - %i %n"), &i, &j, &n); + printf ("found %i-%i (length=%i)\n", i, j, n); + + int result = 0; + if (i != 7) + { + printf ("i is %d, expected 7\n", i); + result = 1; + } + if (j != 11) + { + printf ("j is %d, expected 11\n", j); + result = 1; + } + if (n != 4) + { + printf ("n is %d, expected 4\n", j); + result = 1; + } + + return result; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" |