diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2019-01-10 11:12:00 +0000 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2019-01-10 11:12:00 +0000 |
commit | 7c4979b2b2f4d70f9e1ab8ba5fa3daeb0d5ace77 (patch) | |
tree | fea1cbf8b54c76f6ef859d5b8eae4a838c79a52f | |
parent | 6cdf1946f6eed116552026cfeb44a669ee882ccf (diff) | |
download | gcc-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
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; |