Include name of test in filesystem-test.XXXXXX filenames
authorJonathan Wakely <jwakely@redhat.com>
Thu, 10 Jan 2019 11:12:00 +0000 (11:12 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Thu, 10 Jan 2019 11:12:00 +0000 (11:12 +0000)
Also fix some tests that were not cleaning up after themselves, as
identified by the change to nonexistent_path.

* testsuite/util/testsuite_fs.h (nonexistent_path): Include name
of the source file containing the caller.
* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Remove
directories created by test.
* testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
Likewise.
* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
Likewise.
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Likewise.

From-SVN: r267801

libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc
libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
libstdc++-v3/testsuite/util/testsuite_fs.h

index 4e248d46f182dacc4e33bf1e892ca8a50198cdf2..6bc27c5ae3000328c337d3a4cf2f7a94f62bd02f 100644 (file)
@@ -1,3 +1,16 @@
+2019-01-10  Jonathan Wakely  <jwakely@redhat.com>
+
+       * testsuite/util/testsuite_fs.h (nonexistent_path): Include name
+       of the source file containing the caller.
+       * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Remove
+       directories created by test.
+       * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
+       Likewise.
+       * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
+       Likewise.
+       * testsuite/experimental/filesystem/iterators/
+       recursive_directory_iterator.cc: Likewise.
+
 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
 
        PR tree-optimization/88775
index ddb424b4be0029595ec924a1fca267901621eb9d..5288bd297bd08d88a6ff3c4e9602a685cf499c0b 100644 (file)
@@ -138,6 +138,9 @@ test05()
   static_assert( noexcept(begin(it)), "begin is noexcept" );
   VERIFY( end(it) == endit );
   static_assert( noexcept(end(it)), "end is noexcept" );
+
+  std::error_code ec;
+  remove_all(p, ec);
 }
 
 int
index bf67bfd215b274ea88c52b187134c21a1ac511d3..47b3266d3ebf5c4163bf3bcaaed7a47aa18aad70 100644 (file)
@@ -179,6 +179,9 @@ test05()
   static_assert( noexcept(begin(it)), "begin is noexcept" );
   VERIFY( end(it) == endit );
   static_assert( noexcept(end(it)), "end is noexcept" );
+
+  std::error_code ec;
+  remove_all(p, ec);
 }
 
 int
index 758291afcd677433653c2c1e37017fffa0ef21a1..cc3cd8798651b4c596c5f0de91a79046b390029c 100644 (file)
@@ -129,6 +129,9 @@ test05()
   static_assert( noexcept(begin(it)), "begin is noexcept" );
   VERIFY( end(it) == endit );
   static_assert( noexcept(end(it)), "end is noexcept" );
+
+  std::error_code ec;
+  remove_all(p, ec);
 }
 
 int
index ad37ba33f8e9d659832032307d5a21d810301f65..6217aca8b9a34c2dd944c17abd8d09475d33f1bb 100644 (file)
@@ -176,6 +176,9 @@ test05()
   static_assert( noexcept(begin(it)), "begin is noexcept" );
   VERIFY( end(it) == endit );
   static_assert( noexcept(end(it)), "end is noexcept" );
+
+  std::error_code ec;
+  remove_all(p, ec);
 }
 
 int
index 6421569008348a5fb511119cd9b6590cc6ca193a..48f503b3c2766ba83f9dedb7126e1403e15e5409 100644 (file)
@@ -86,8 +86,18 @@ namespace __gnu_test
   // This is NOT supposed to be a secure way to get a unique name!
   // We just need a path that doesn't exist for testing purposes.
   test_fs::path
-  nonexistent_path()
+  nonexistent_path(std::string file = __builtin_FILE())
   {
+    // Include the caller's filename to help identify tests that fail to
+    // clean up the files they create.
+    // Remove .cc extension:
+    if (file.length() > 3 && file.compare(file.length() - 3, 3, ".cc") == 0)
+      file.resize(file.length() - 3);
+    // And directory:
+    auto pos = file.find_last_of("/\\");
+    if (pos != file.npos)
+      file.erase(0, pos+1);
+
     test_fs::path p;
 #if defined(_GNU_SOURCE) || _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
     char tmp[] = "filesystem-test.XXXXXX";
@@ -97,16 +107,22 @@ namespace __gnu_test
          std::error_code(errno, std::generic_category()));
     ::unlink(tmp);
     ::close(fd);
-    p = tmp;
+    if (!file.empty())
+      file.insert(0, 1, '-');
+    file.insert(0, tmp);
+    p = file;
 #else
-    char buf[64];
+    if (file.length() > 64)
+      file.resize(64);
+    char buf[128];
     static int counter;
 #if _GLIBCXX_USE_C99_STDIO
-    std::snprintf(buf, 64,
+    std::snprintf(buf, 128,
 #else
     std::sprintf(buf,
 #endif
-      "filesystem-test.%d.%lu", counter++, (unsigned long) ::getpid());
+      "filesystem-test.%d.%lu-%s", counter++, (unsigned long) ::getpid(),
+      file.c_str());
     p = buf;
 #endif
     return p;