Commit 7c4979b2 by Jonathan Wakely Committed by Jonathan Wakely

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
parent 6cdf1946
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> 2019-01-10 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/88775 PR tree-optimization/88775
......
...@@ -138,6 +138,9 @@ test05() ...@@ -138,6 +138,9 @@ test05()
static_assert( noexcept(begin(it)), "begin is noexcept" ); static_assert( noexcept(begin(it)), "begin is noexcept" );
VERIFY( end(it) == endit ); VERIFY( end(it) == endit );
static_assert( noexcept(end(it)), "end is noexcept" ); static_assert( noexcept(end(it)), "end is noexcept" );
std::error_code ec;
remove_all(p, ec);
} }
int int
......
...@@ -179,6 +179,9 @@ test05() ...@@ -179,6 +179,9 @@ test05()
static_assert( noexcept(begin(it)), "begin is noexcept" ); static_assert( noexcept(begin(it)), "begin is noexcept" );
VERIFY( end(it) == endit ); VERIFY( end(it) == endit );
static_assert( noexcept(end(it)), "end is noexcept" ); static_assert( noexcept(end(it)), "end is noexcept" );
std::error_code ec;
remove_all(p, ec);
} }
int int
......
...@@ -129,6 +129,9 @@ test05() ...@@ -129,6 +129,9 @@ test05()
static_assert( noexcept(begin(it)), "begin is noexcept" ); static_assert( noexcept(begin(it)), "begin is noexcept" );
VERIFY( end(it) == endit ); VERIFY( end(it) == endit );
static_assert( noexcept(end(it)), "end is noexcept" ); static_assert( noexcept(end(it)), "end is noexcept" );
std::error_code ec;
remove_all(p, ec);
} }
int int
......
...@@ -176,6 +176,9 @@ test05() ...@@ -176,6 +176,9 @@ test05()
static_assert( noexcept(begin(it)), "begin is noexcept" ); static_assert( noexcept(begin(it)), "begin is noexcept" );
VERIFY( end(it) == endit ); VERIFY( end(it) == endit );
static_assert( noexcept(end(it)), "end is noexcept" ); static_assert( noexcept(end(it)), "end is noexcept" );
std::error_code ec;
remove_all(p, ec);
} }
int int
......
...@@ -86,8 +86,18 @@ namespace __gnu_test ...@@ -86,8 +86,18 @@ namespace __gnu_test
// This is NOT supposed to be a secure way to get a unique name! // 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. // We just need a path that doesn't exist for testing purposes.
test_fs::path 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; test_fs::path p;
#if defined(_GNU_SOURCE) || _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L #if defined(_GNU_SOURCE) || _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
char tmp[] = "filesystem-test.XXXXXX"; char tmp[] = "filesystem-test.XXXXXX";
...@@ -97,16 +107,22 @@ namespace __gnu_test ...@@ -97,16 +107,22 @@ namespace __gnu_test
std::error_code(errno, std::generic_category())); std::error_code(errno, std::generic_category()));
::unlink(tmp); ::unlink(tmp);
::close(fd); ::close(fd);
p = tmp; if (!file.empty())
file.insert(0, 1, '-');
file.insert(0, tmp);
p = file;
#else #else
char buf[64]; if (file.length() > 64)
file.resize(64);
char buf[128];
static int counter; static int counter;
#if _GLIBCXX_USE_C99_STDIO #if _GLIBCXX_USE_C99_STDIO
std::snprintf(buf, 64, std::snprintf(buf, 128,
#else #else
std::sprintf(buf, std::sprintf(buf,
#endif #endif
"filesystem-test.%d.%lu", counter++, (unsigned long) ::getpid()); "filesystem-test.%d.%lu-%s", counter++, (unsigned long) ::getpid(),
file.c_str());
p = buf; p = buf;
#endif #endif
return p; return p;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment