#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;
}
