about summary refs log tree commit diff
path: root/libio/bug-mmap-fflush.c
diff options
context:
space:
mode:
Diffstat (limited to 'libio/bug-mmap-fflush.c')
-rw-r--r--libio/bug-mmap-fflush.c40
1 files changed, 33 insertions, 7 deletions
diff --git a/libio/bug-mmap-fflush.c b/libio/bug-mmap-fflush.c
index 984acb496b..d8aa58985a 100644
--- a/libio/bug-mmap-fflush.c
+++ b/libio/bug-mmap-fflush.c
@@ -4,24 +4,50 @@
 #include <stdlib.h>
 #include <string.h>
 
-int main (void)
+
+static char *fname;
+
+static void prepare (void);
+#define PREPARE(argc, argv) prepare ()
+
+
+#define TEST_FUNCTION do_test ()
+static int do_test (void);
+#include "../test-skeleton.c"
+
+
+static void
+prepare (void)
+{
+  int fd = create_temp_file ("bug-mmap-fflush.", &fname);
+  if (fd == -1)
+    exit (3);
+  /* We don't need the descriptor.  */
+  close (fd);
+}
+
+
+static int
+do_test (void)
 {
   FILE *f;
   off_t o;
-  char buffer [1024];
+  char buffer[1024];
 
-  system ("echo 'From foo@bar.com' > test");
-  f = fopen ("test", "r");
+  snprintf (buffer, sizeof (buffer), "echo 'From foo@bar.com' > %s", fname);
+  system (buffer);
+  f = fopen (fname, "r");
   fseek (f, 0, SEEK_END);
   o = ftello (f);
   fseek (f, 0, SEEK_SET);
   fflush (f);
-  system ("echo 'From bar@baz.edu' >> test");
+  snprintf (buffer, sizeof (buffer), "echo 'From bar@baz.edu' >> %s", fname);
+  system (buffer);
   fseek (f, o, SEEK_SET);
   if (fgets (buffer, 1024, f) == NULL)
-    abort ();
+    exit (1);
   if (strncmp (buffer, "From ", 5) != 0)
-    abort ();
+    exit (1);
   fclose (f);
   exit (0);
 }