Blame stdio-common/bug3.c

Packit 6c4009
#include <stdio.h>
Packit 6c4009
#include <string.h>
Packit 6c4009
Packit 6c4009
int
Packit 6c4009
main (void)
Packit 6c4009
{
Packit 6c4009
  FILE *f;
Packit 6c4009
  int i;
Packit 6c4009
  const char filename[] = OBJPFX "bug3.test";
Packit 6c4009
Packit 6c4009
  f = fopen(filename, "w+");
Packit 6c4009
  for (i=0; i<9000; i++)
Packit 6c4009
    putc ('x', f);
Packit 6c4009
  fseek (f, 8180L, 0);
Packit 6c4009
  fwrite ("Where does this text go?", 1, 24, f);
Packit 6c4009
  fflush (f);
Packit 6c4009
Packit 6c4009
  rewind (f);
Packit 6c4009
  for (i=0; i<9000; i++)
Packit 6c4009
    {
Packit 6c4009
      int j;
Packit 6c4009
Packit 6c4009
      if ((j = getc(f)) != 'x')
Packit 6c4009
	{
Packit 6c4009
	  if (i != 8180)
Packit 6c4009
	    {
Packit 6c4009
	      printf ("Test FAILED!");
Packit 6c4009
	      return 1;
Packit 6c4009
	    }
Packit 6c4009
	  else
Packit 6c4009
	    {
Packit 6c4009
	      char buf[25];
Packit 6c4009
Packit 6c4009
	      buf[0] = j;
Packit 6c4009
	      fread (buf + 1, 1, 23, f);
Packit 6c4009
	      buf[24] = '\0';
Packit 6c4009
	      if (strcmp (buf, "Where does this text go?") != 0)
Packit 6c4009
		{
Packit 6c4009
		  printf ("%s\nTest FAILED!\n", buf);
Packit 6c4009
		  return 1;
Packit 6c4009
		}
Packit 6c4009
	      i += 23;
Packit 6c4009
	    }
Packit 6c4009
	}
Packit 6c4009
    }
Packit 6c4009
Packit 6c4009
  fclose(f);
Packit 6c4009
  remove(filename);
Packit 6c4009
Packit 6c4009
  puts ("Test succeeded.");
Packit 6c4009
Packit 6c4009
  return 0;
Packit 6c4009
}