glibc/stdio-common/tst-ferror.c

42 lines
895 B
C

#include <stdio.h>
int
main (int argc, char *argv[])
{
char buf[100];
int result = 0;
if (ferror (stdin) != 0)
{
fputs ("error bit set for stdin at startup\n", stdout);
result = 1;
}
if (fgets (buf, sizeof buf, stdin) != buf)
{
fputs ("fgets with existing input has problem\n", stdout);
result = 1;
}
if (ferror (stdin) != 0)
{
fputs ("error bit set for stdin after setup\n", stdout);
result = 1;
}
if (fputc ('a', stdin) != EOF)
{
fputs ("fputc to stdin does not terminate with an error\n", stdout);
result = 1;
}
if (ferror (stdin) == 0)
{
fputs ("error bit not set for stdin after fputc\n", stdout);
result = 1;
}
clearerr (stdin);
if (ferror (stdin) != 0)
{
fputs ("error bit set for stdin after clearerr\n", stdout);
result = 1;
}
return result;
}