diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2024-06-10 21:10:29 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2024-06-11 11:11:22 +0100 |
commit | 84c87d1f43091c2e537182d029db9739de518096 (patch) | |
tree | b152fa6baaeeec354969aabdca552c80245cf466 /libstdc++-v3/testsuite | |
parent | 75299e4fe50aa8d9b3ff529e48db4ed246083e64 (diff) | |
download | gcc-84c87d1f43091c2e537182d029db9739de518096.zip gcc-84c87d1f43091c2e537182d029db9739de518096.tar.gz gcc-84c87d1f43091c2e537182d029db9739de518096.tar.bz2 |
libstdc++: Add test for chrono::leap_seconds ostream insertion
Also add a comment to the three-way comparison oeprator for
chrono::leap_seconds, noting the deviation from the spec (which is
functionally equivalent). What we implement is the originally proposed
resolution to LWG 3383, which should compile slightly more efficiently
than the final accepted resolution.
libstdc++-v3/ChangeLog:
* include/std/chrono (leap_seconds): Add comment.
* testsuite/std/time/leap_seconds/io.cc: New test.
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r-- | libstdc++-v3/testsuite/std/time/leap_seconds/io.cc | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/std/time/leap_seconds/io.cc b/libstdc++-v3/testsuite/std/time/leap_seconds/io.cc new file mode 100644 index 0000000..511fafd --- /dev/null +++ b/libstdc++-v3/testsuite/std/time/leap_seconds/io.cc @@ -0,0 +1,56 @@ +// { dg-do run { target c++20 } } +// { dg-require-effective-target tzdb } +// { dg-require-effective-target cxx11_abi } + +#include <chrono> +#include <sstream> +#include <format> +#include <testsuite_hooks.h> + +void +test_output() +{ + using namespace std::chrono; + + std::ostringstream out; + out << '\n'; + + for (auto& l : get_tzdb().leap_seconds) + if (l <= sys_days{2018y/March/17d}) + out << l.date() << ": " << l.value() << '\n'; + + VERIFY( out.str() == R"( +1972-07-01 00:00:00: 1s +1973-01-01 00:00:00: 1s +1974-01-01 00:00:00: 1s +1975-01-01 00:00:00: 1s +1976-01-01 00:00:00: 1s +1977-01-01 00:00:00: 1s +1978-01-01 00:00:00: 1s +1979-01-01 00:00:00: 1s +1980-01-01 00:00:00: 1s +1981-07-01 00:00:00: 1s +1982-07-01 00:00:00: 1s +1983-07-01 00:00:00: 1s +1985-07-01 00:00:00: 1s +1988-01-01 00:00:00: 1s +1990-01-01 00:00:00: 1s +1991-01-01 00:00:00: 1s +1992-07-01 00:00:00: 1s +1993-07-01 00:00:00: 1s +1994-07-01 00:00:00: 1s +1996-01-01 00:00:00: 1s +1997-07-01 00:00:00: 1s +1999-01-01 00:00:00: 1s +2006-01-01 00:00:00: 1s +2009-01-01 00:00:00: 1s +2012-07-01 00:00:00: 1s +2015-07-01 00:00:00: 1s +2017-01-01 00:00:00: 1s +)" ); +} + +int main() +{ + test_output(); +} |