about summary refs log tree commit diff
path: root/REORG.TODO/stdio-common/bug3.c
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/stdio-common/bug3.c')
-rw-r--r--REORG.TODO/stdio-common/bug3.c53
1 files changed, 53 insertions, 0 deletions
diff --git a/REORG.TODO/stdio-common/bug3.c b/REORG.TODO/stdio-common/bug3.c
new file mode 100644
index 0000000000..6b2ed6b8e0
--- /dev/null
+++ b/REORG.TODO/stdio-common/bug3.c
@@ -0,0 +1,53 @@
+#include <stdio.h>
+#include <string.h>
+
+int
+main (void)
+{
+  FILE *f;
+  int i;
+  const char filename[] = "/tmp/bug3.test";
+
+  f = fopen(filename, "w+");
+  for (i=0; i<9000; i++)
+    putc ('x', f);
+  fseek (f, 8180L, 0);
+  fwrite ("Where does this text go?", 1, 24, f);
+  fflush (f);
+
+  rewind (f);
+  for (i=0; i<9000; i++)
+    {
+      int j;
+
+      if ((j = getc(f)) != 'x')
+	{
+	  if (i != 8180)
+	    {
+	      printf ("Test FAILED!");
+	      return 1;
+	    }
+	  else
+	    {
+	      char buf[25];
+
+	      buf[0] = j;
+	      fread (buf + 1, 1, 23, f);
+	      buf[24] = '\0';
+	      if (strcmp (buf, "Where does this text go?") != 0)
+		{
+		  printf ("%s\nTest FAILED!\n", buf);
+		  return 1;
+		}
+	      i += 23;
+	    }
+	}
+    }
+
+  fclose(f);
+  remove(filename);
+
+  puts ("Test succeeded.");
+
+  return 0;
+}