1#include <stdio.h>
2
3static int
4do_test (void)
5{
6 char buf[100];
7 int result = 0;
8
9 if (ferror (stdin) != 0)
10 {
11 fputs ("error bit set for stdin at startup\n", stdout);
12 result = 1;
13 }
14 if (fgets (s: buf, n: sizeof buf, stdin) != buf)
15 {
16 fputs ("fgets with existing input has problem\n", stdout);
17 result = 1;
18 }
19 if (ferror (stdin) != 0)
20 {
21 fputs ("error bit set for stdin after setup\n", stdout);
22 result = 1;
23 }
24 if (fputc (c: 'a', stdin) != EOF)
25 {
26 fputs ("fputc to stdin does not terminate with an error\n", stdout);
27 result = 1;
28 }
29 if (ferror (stdin) == 0)
30 {
31 fputs ("error bit not set for stdin after fputc\n", stdout);
32 result = 1;
33 }
34 clearerr (stdin);
35 if (ferror (stdin) != 0)
36 {
37 fputs ("error bit set for stdin after clearerr\n", stdout);
38 result = 1;
39 }
40 return result;
41}
42
43#define TEST_FUNCTION do_test ()
44#include "../test-skeleton.c"
45

source code of glibc/stdio-common/tst-ferror.c