Move slow_clock test class into a header file so that it can be used by other tests in the future.
* testsuite/util/slow_clock.h: New file. Move implementation of slow_clock test class. * testsuite/30_threads/condition_variable/members/2.cc: Include slow_clock from header. --- libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc | 17 +---------------- libstdc++-v3/testsuite/util/slow_clock.h | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 16 deletions(-) create mode 100644 libstdc++-v3/testsuite/util/slow_clock.h diff --git a/libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc b/libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc index cbac3fa..f821d3f 100644 --- a/libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc +++ b/libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc @@ -25,6 +25,7 @@ #include <condition_variable> #include <system_error> #include <testsuite_hooks.h> +#include <slow_clock.h> template <typename ClockType> void test01() @@ -52,22 +53,6 @@ void test01() } } -struct slow_clock -{ - using rep = std::chrono::system_clock::rep; - using period = std::chrono::system_clock::period; - using duration = std::chrono::system_clock::duration; - using time_point = std::chrono::time_point<slow_clock, duration>; - static constexpr bool is_steady = false; - - static time_point now() - { - auto real = std::chrono::system_clock::now(); - return time_point{real.time_since_epoch() / 3}; - } -}; - - void test01_alternate_clock() { try diff --git a/libstdc++-v3/testsuite/util/slow_clock.h b/libstdc++-v3/testsuite/util/slow_clock.h new file mode 100644 index 0000000..13fc94b --- /dev/null +++ b/libstdc++-v3/testsuite/util/slow_clock.h @@ -0,0 +1,38 @@ +// -*- C++ -*- + +// Copyright (C) 2004-2019 Free Software Foundation, Inc. + +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License as +// published by the Free Software Foundation; either version 3, or (at +// your option) any later version. + +// This library is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + + +// A clock that ticks at a third of the speed of system_clock that can be used +// to ensure that functions with timeouts don't erroneously return early. + +#include <chrono> + +struct slow_clock +{ + using rep = std::chrono::system_clock::rep; + using period = std::chrono::system_clock::period; + using duration = std::chrono::system_clock::duration; + using time_point = std::chrono::time_point<slow_clock, duration>; + static constexpr bool is_steady = false; + + static time_point now() + { + auto real = std::chrono::system_clock::now(); + return time_point{real.time_since_epoch() / 3}; + } +}; -- git-series 0.9.1