From 40d9e09d892af387d97a8ab507f440ff027cd206 Mon Sep 17 00:00:00 2001 From: Eric Fiselier Date: Fri, 17 Jun 2016 21:44:26 +0000 Subject: [PATCH] Get filesystem tests passing for single-threaded configurations. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273054 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp | 5 ++--- .../fs.op.copy_symlink/copy_symlink.pass.cpp | 2 -- .../create_directories.pass.cpp | 2 -- .../fs.op.create_directory/create_directory.pass.cpp | 2 -- .../create_directory_with_attributes.pass.cpp | 2 -- .../fs.op.last_write_time/last_write_time.pass.cpp | 4 +--- test/support/filesystem_test_helper.hpp | 11 +++++++++++ 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp b/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp index 0f43901f8..ac9877bbd 100644 --- a/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp +++ b/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp @@ -20,7 +20,6 @@ #include #include #include -#include #include #include "test_macros.h" @@ -109,10 +108,10 @@ TEST_CASE(copy_file) using Sec = std::chrono::seconds; const path older = env.create_file("older_file", 1); - std::this_thread::sleep_for(Sec(2)); + SleepFor(Sec(2)); const path from = env.create_file("update_from", 55); - std::this_thread::sleep_for(Sec(2)); + SleepFor(Sec(2)); const path newer = env.create_file("newer_file", 2); std::error_code ec; diff --git a/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp b/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp index a95f6e334..6fae11195 100644 --- a/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp +++ b/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp @@ -17,8 +17,6 @@ #include #include -#include -#include #include #include "test_macros.h" diff --git a/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp b/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp index 7507042ae..ba0602549 100644 --- a/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp +++ b/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp @@ -16,8 +16,6 @@ #include #include -#include -#include #include #include "test_macros.h" diff --git a/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp b/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp index 2381936c6..5fce217bc 100644 --- a/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp +++ b/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp @@ -18,8 +18,6 @@ #include #include -#include -#include #include #include "test_macros.h" diff --git a/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp b/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp index 638fca236..0944a089f 100644 --- a/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp +++ b/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp @@ -16,8 +16,6 @@ #include #include -#include -#include #include #include "test_macros.h" diff --git a/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp b/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp index bcba502f4..b3b496523 100644 --- a/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp +++ b/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp @@ -21,11 +21,9 @@ #include #include #include -#include #include #include #include -#include #include "test_macros.h" #include "rapid-cxx-test.hpp" @@ -140,7 +138,7 @@ TEST_CASE(get_last_write_time_dynamic_env_test) file_time_type dtime = last_write_time(dir); TEST_CHECK(Clock::to_time_t(dtime) == dir_write_time); - std::this_thread::sleep_for(Sec(2)); + SleepFor(Sec(2)); // update file and add a file to the directory. Make sure the times increase. std::ofstream of(file, std::ofstream::app); diff --git a/test/support/filesystem_test_helper.hpp b/test/support/filesystem_test_helper.hpp index 543459059..f902af4e5 100644 --- a/test/support/filesystem_test_helper.hpp +++ b/test/support/filesystem_test_helper.hpp @@ -7,6 +7,7 @@ #include #include #include +#include namespace fs = std::experimental::filesystem; @@ -367,4 +368,14 @@ inline std::error_code GetTestEC() { return std::make_error_code(std::errc::address_family_not_supported); } +// Provide our own Sleep routine since std::this_thread::sleep_for is not +// available in single-threaded mode. +void SleepFor(std::chrono::seconds dur) { + using namespace std::chrono; + const auto curr_time = system_clock::now(); + auto wake_time = curr_time + dur; + while (system_clock::now() < wake_time) + ; +} + #endif /* FILESYSTEM_TEST_HELPER_HPP */