Blame stdio-common/bug12.c

Packit 6c4009
#include <stdio.h>
Packit 6c4009
#include <string.h>
Packit 6c4009
Packit 6c4009
char x[4096], z[4096], b[21], m[4096 * 4];
Packit 6c4009
Packit 6c4009
int
Packit 6c4009
main (void)
Packit 6c4009
{
Packit 6c4009
  FILE *f = tmpfile ();
Packit 6c4009
  int i, failed = 0;
Packit 6c4009
Packit 6c4009
  memset (x, 'x', 4096);
Packit 6c4009
  memset (z, 'z', 4096);
Packit 6c4009
  b[20] = 0;
Packit 6c4009
Packit 6c4009
  for (i = 0; i <= 5; i++)
Packit 6c4009
    {
Packit 6c4009
      fwrite (x, 4096, 1, f);
Packit 6c4009
      fwrite (z, 4096, 1, f);
Packit 6c4009
    }
Packit 6c4009
  rewind (f);
Packit 6c4009
Packit 6c4009
  fread (m, 4096 * 4 - 10, 1, f);
Packit 6c4009
  fread (b, 20, 1, f);
Packit 6c4009
  printf ("got %s (should be %s)\n", b, "zzzzzzzzzzxxxxxxxxxx");
Packit 6c4009
  if (strcmp (b, "zzzzzzzzzzxxxxxxxxxx"))
Packit 6c4009
    failed = 1;
Packit 6c4009
Packit 6c4009
  fseek (f, -40, SEEK_CUR);
Packit 6c4009
  fread (b, 20, 1, f);
Packit 6c4009
  printf ("got %s (should be %s)\n", b, "zzzzzzzzzzzzzzzzzzzz");
Packit 6c4009
  if (strcmp (b, "zzzzzzzzzzzzzzzzzzzz"))
Packit 6c4009
    failed = 1;
Packit 6c4009
Packit 6c4009
  fread (b, 20, 1, f);
Packit 6c4009
  printf ("got %s (should be %s)\n", b, "zzzzzzzzzzxxxxxxxxxx");
Packit 6c4009
  if (strcmp (b, "zzzzzzzzzzxxxxxxxxxx"))
Packit 6c4009
    failed = 1;
Packit 6c4009
Packit 6c4009
  fread (b, 20, 1, f);
Packit 6c4009
  printf ("got %s (should be %s)\n", b, "xxxxxxxxxxxxxxxxxxxx");
Packit 6c4009
  if (strcmp (b, "xxxxxxxxxxxxxxxxxxxx"))
Packit 6c4009
    failed = 1;
Packit 6c4009
Packit 6c4009
  return failed;
Packit 6c4009
}