From c98d4212d0d7c9dfc34cf18ea95740370bca5aad Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 19 Apr 2010 13:48:00 -0700 Subject: [PATCH] tst-fmemopen: Do not write test file in $srcdir. --- ChangeLog | 5 +++++ stdio-common/tst-fmemopen.c | 18 ++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 61700fc253..6a01632cf1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-04-19 Roland McGrath + + * stdio-common/tst-fmemopen.c (TEST_FILE): Macro removed. + (main): Take arguments. Construct test file name from ARGV[0]. + 2010-04-15 H.J. Lu * string/test-strncmp.c (check_result): New function. diff --git a/stdio-common/tst-fmemopen.c b/stdio-common/tst-fmemopen.c index 3c06c45c78..8aa047e3c1 100644 --- a/stdio-common/tst-fmemopen.c +++ b/stdio-common/tst-fmemopen.c @@ -8,11 +8,10 @@ #include #include -#define TEST_FILE "test-1" - int -main (void) +main (int argc, char **argv) { + const char *test_file; const char blah[] = "BLAH"; FILE *fp; char *mmap_data; @@ -20,8 +19,14 @@ main (void) struct stat fs; const char *cp; + /* Construct the test file name based on ARGV[0], which will be + an absolute file name in the build directory. Don't touch the + source directory, which might be read-only. */ + if (argc != 1 || asprintf (&test_file, "%s.test", argv[0]) < 0) + exit (99); + /* setup the physical file, and use it */ - if ((fp = fopen (TEST_FILE, "w+")) == NULL) + if ((fp = fopen (test_file, "w+")) == NULL) exit (1); if (fwrite (blah, 1, strlen (blah), fp) != strlen (blah)) exit (2); @@ -56,7 +61,7 @@ main (void) fclose (fp); /* Now, mmap the file into a buffer, and do that too */ - if ((fd = open (TEST_FILE, O_RDONLY)) == -1) + if ((fd = open (test_file, O_RDONLY)) == -1) exit (3); if (fstat (fd, &fs) == -1) exit (4); @@ -105,7 +110,8 @@ main (void) munmap (mmap_data, fs.st_size); - unlink (TEST_FILE); + unlink (test_file); + free (test_file); return 0; }