diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2021-02-12 15:13:02 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2021-02-12 15:13:02 +0000 |
commit | 4179ec107943bea360b8aa75e29e2c5ad9f13e9e (patch) | |
tree | 7b08c20a9e43e171d07017176dd9b38765f87732 /libstdc++-v3 | |
parent | d1a821b93c45bfe7606b5dee8d160c7172b37e3e (diff) | |
download | gcc-4179ec107943bea360b8aa75e29e2c5ad9f13e9e.zip gcc-4179ec107943bea360b8aa75e29e2c5ad9f13e9e.tar.gz gcc-4179ec107943bea360b8aa75e29e2c5ad9f13e9e.tar.bz2 |
libstdc++: Make "nonexistent" paths less predictable in filesystem tests
The helper function for creating new paths doesn't work well on Windows,
because the PID of a process started by Wine is very consistent and so
the same path gets created each time.
libstdc++-v3/ChangeLog:
* testsuite/util/testsuite_fs.h (nonexistent_path): Add
random number to the path.
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/testsuite/util/testsuite_fs.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/libstdc++-v3/testsuite/util/testsuite_fs.h b/libstdc++-v3/testsuite/util/testsuite_fs.h index 4cda0ee..e4d04dd 100644 --- a/libstdc++-v3/testsuite/util/testsuite_fs.h +++ b/libstdc++-v3/testsuite/util/testsuite_fs.h @@ -34,8 +34,13 @@ namespace test_fs = std::experimental::filesystem; #include <fstream> #include <string> #include <cstdio> -#include <stdlib.h> -#include <unistd.h> + +#if defined(_GNU_SOURCE) || _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L +#include <stdlib.h> // mkstemp +#include <unistd.h> // unlink, close +#else +#include <random> // std::random_device +#endif namespace __gnu_test { @@ -121,13 +126,13 @@ namespace __gnu_test if (file.length() > 64) file.resize(64); char buf[128]; - static int counter; + static unsigned counter = std::random_device{}(); #if _GLIBCXX_USE_C99_STDIO std::snprintf(buf, 128, #else std::sprintf(buf, #endif - "filesystem-test.%d.%lu-%s", counter++, (unsigned long) ::getpid(), + "filesystem-test.%u.%lu-%s", counter++, (unsigned long) ::getpid(), file.c_str()); p = buf; #endif |