aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2019-01-10 11:12:00 +0000
committerJonathan Wakely <redi@gcc.gnu.org>2019-01-10 11:12:00 +0000
commit7c4979b2b2f4d70f9e1ab8ba5fa3daeb0d5ace77 (patch)
treefea1cbf8b54c76f6ef859d5b8eae4a838c79a52f
parent6cdf1946f6eed116552026cfeb44a669ee882ccf (diff)
downloadgcc-7c4979b2b2f4d70f9e1ab8ba5fa3daeb0d5ace77.zip
gcc-7c4979b2b2f4d70f9e1ab8ba5fa3daeb0d5ace77.tar.gz
gcc-7c4979b2b2f4d70f9e1ab8ba5fa3daeb0d5ace77.tar.bz2
Include name of test in filesystem-test.XXXXXX filenames
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
-rw-r--r--libstdc++-v3/ChangeLog13
-rw-r--r--libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc3
-rw-r--r--libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc3
-rw-r--r--libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc3
-rw-r--r--libstdc++-v3/testsuite/util/testsuite_fs.h26
6 files changed, 46 insertions, 5 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 4e248d4..6bc27c5 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -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
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc b/libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
index ddb424b..5288bd2 100644
--- a/libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
+++ b/libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc
@@ -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
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc b/libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
index bf67bfd..47b3266 100644
--- a/libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
+++ b/libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
@@ -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
diff --git a/libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc b/libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc
index 758291a..cc3cd87 100644
--- a/libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc
+++ b/libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc
@@ -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
diff --git a/libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc b/libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
index ad37ba3..6217aca 100644
--- a/libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
+++ b/libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
@@ -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
diff --git a/libstdc++-v3/testsuite/util/testsuite_fs.h b/libstdc++-v3/testsuite/util/testsuite_fs.h
index 6421569..48f503b 100644
--- a/libstdc++-v3/testsuite/util/testsuite_fs.h
+++ b/libstdc++-v3/testsuite/util/testsuite_fs.h
@@ -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;