================ @@ -0,0 +1,48 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +// UNSUPPORTED: c++03, c++11, c++14, c++17 +// UNSUPPORTED: no-filesystem, no-localization, no-tzdb + +// XFAIL: libcpp-has-no-incomplete-tzdb +// XFAIL: availability-tzdb-missing + +// <chrono> + +// class leap_second; + +// constexpr sys_seconds date() const noexcept; + +#include <cassert> +#include <chrono> + +#include "test_macros.h" + +// Add the include path required by test_chrono_leap_second.h when using libc++. +// ADDITIONAL_COMPILE_FLAGS(stdlib=libc++): -I %S/../../../../../../src/include +#include "test_chrono_leap_second.h" + +constexpr bool test(const std::chrono::leap_second leap_second, std::chrono::sys_seconds expected) { + std::same_as<std::chrono::sys_seconds> auto date = leap_second.date(); + assert(date == expected); + static_assert(noexcept(leap_second.date())); + + return true; +} + +int main(int, const char**) { + const std::chrono::tzdb& tzdb = std::chrono::get_tzdb(); ---------------- ldionne wrote:
I think we have two tests here. First, we have a test with `test_leap_second_create(std::chrono::sys_seconds{std::chrono::seconds{0}}, std::chrono::seconds{1})` and we should test it both at runtime and at compile-time. Second, we have a test with the actual value obtained from `get_tzdb()` and we can only test it at runtime. ```c++ constexpr bool test() { auto leap_second = test_leap_second_create(std::chrono::sys_seconds{std::chrono::seconds{0}}, std::chrono::seconds{1}); std::same_as<std::chrono::sys_seconds> auto date = leap_second.date(); assert(date == std::chrono::sys_seconds{std::chrono::seconds{0}}); // etc.. } int main() { test(); static_assert(test()); // test with the real tzdb { const auto& tzdb = get_tzdb(); ... } } ``` This would apply to the other test files as well. https://github.com/llvm/llvm-project/pull/82113 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits