[libcxx-commits] [libcxx] f090dd1 - [libc++][test] Fix-up tests for `is_clock(_v)` (#166888)
via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Nov 7 08:45:26 PST 2025
Author: A. Jiang
Date: 2025-11-08T00:45:22+08:00
New Revision: f090dd15a10e65e5127afe7bac4e7d148396ff88
URL: https://github.com/llvm/llvm-project/commit/f090dd15a10e65e5127afe7bac4e7d148396ff88
DIFF: https://github.com/llvm/llvm-project/commit/f090dd15a10e65e5127afe7bac4e7d148396ff88.diff
LOG: [libc++][test] Fix-up tests for `is_clock(_v)` (#166888)
This fixes incompleteness and inconsistency for test files added in
adc79324618f0e95914ac0fcb26fe0d942319cab, by
- renaming
`libcxx/test/std/time/time.traits.is.clock/trait.is.clock.compile.pass.cpp`
to `libcxx/test/std/time/time.traits/is.clock.compile.pass.cpp`,
- renaming
`libcxx/test/libcxx/time/time.traits.is.clock/trait.is.clock.compile.verify.cpp`
to `libcxx/test/libcxx/time/time.traits/is.clock.verify.cpp` , and
- adding comments clarifying what are being tested.
Added:
libcxx/test/libcxx/time/time.traits/is.clock.verify.cpp
libcxx/test/std/time/time.traits/is.clock.compile.pass.cpp
Modified:
Removed:
libcxx/test/libcxx/time/time.traits.is.clock/trait.is.clock.compile.verify.cpp
libcxx/test/std/time/time.traits.is.clock/trait.is.clock.compile.pass.cpp
################################################################################
diff --git a/libcxx/test/libcxx/time/time.traits.is.clock/trait.is.clock.compile.verify.cpp b/libcxx/test/libcxx/time/time.traits/is.clock.verify.cpp
similarity index 61%
rename from libcxx/test/libcxx/time/time.traits.is.clock/trait.is.clock.compile.verify.cpp
rename to libcxx/test/libcxx/time/time.traits/is.clock.verify.cpp
index e9ad59aba13cb..f4f438d348a85 100644
--- a/libcxx/test/libcxx/time/time.traits.is.clock/trait.is.clock.compile.verify.cpp
+++ b/libcxx/test/libcxx/time/time.traits/is.clock.verify.cpp
@@ -8,6 +8,18 @@
// REQUIRES: std-at-least-c++20
+// <chrono>
+//
+// template<class T> struct is_clock;
+// template<class T> constexpr bool is_clock_v = is_clock<T>::value;
+
+// [time.traits.is.clock]/3:
+// The behavior of a program that adds specializations for is_clock is undefined.
+
+// [namespace.std]/3:
+// The behavior of a C++ program is undefined if it declares an explicit or partial specialization of any standard
+// library variable template, except where explicitly permitted by the specification of that variable template.
+
#include <chrono>
#include <ratio>
diff --git a/libcxx/test/std/time/time.traits.is.clock/trait.is.clock.compile.pass.cpp b/libcxx/test/std/time/time.traits/is.clock.compile.pass.cpp
similarity index 98%
rename from libcxx/test/std/time/time.traits.is.clock/trait.is.clock.compile.pass.cpp
rename to libcxx/test/std/time/time.traits/is.clock.compile.pass.cpp
index 4168fa7c861ba..4af29d20943ea 100644
--- a/libcxx/test/std/time/time.traits.is.clock/trait.is.clock.compile.pass.cpp
+++ b/libcxx/test/std/time/time.traits/is.clock.compile.pass.cpp
@@ -8,6 +8,11 @@
// REQUIRES: std-at-least-c++20
+// <chrono>
+//
+// template<class T> struct is_clock;
+// template<class T> constexpr bool is_clock_v = is_clock<T>::value;
+
#include <chrono>
#include <ratio>
More information about the libcxx-commits
mailing list