(root)/
glibc-2.38/
stdio-common/
tst-ferror.c
       1  #include <stdio.h>
       2  
       3  static int
       4  do_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 (buf, 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 ('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"