Add stringification for std::chrono::{duration,time_point}
Also hides std::chrono, std::pair and std::chrono::* behind
new configuration macros, CATCH_CONFIG_ENABLE_*_STRINGMAKER
to avoid dragging in <utility>, <tuple> and <chrono> in common
path, unless requested.
diff --git a/projects/SelfTest/Baselines/xml.sw.approved.txt b/projects/SelfTest/Baselines/xml.sw.approved.txt
index f3a9ee6..b05dd46 100644
--- a/projects/SelfTest/Baselines/xml.sw.approved.txt
+++ b/projects/SelfTest/Baselines/xml.sw.approved.txt
@@ -5250,6 +5250,88 @@
</Section>
<OverallResult success="false"/>
</TestCase>
+ <TestCase name="Stringifying std::chrono::duration helpers" tags="[chrono][toString]" filename="projects/<exe-name>/ToStringChrono.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringChrono.cpp" >
+ <Original>
+ minute == seconds
+ </Original>
+ <Expanded>
+ 1 m == 60 s
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringChrono.cpp" >
+ <Original>
+ hour != seconds
+ </Original>
+ <Expanded>
+ 1 h != 60 s
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringChrono.cpp" >
+ <Original>
+ micro != milli
+ </Original>
+ <Expanded>
+ 1 us != 1 ms
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringChrono.cpp" >
+ <Original>
+ nano != micro
+ </Original>
+ <Expanded>
+ 1 ns != 1 us
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Stringifying std::chrono::duration with weird ratios" tags="[chrono][toString]" filename="projects/<exe-name>/ToStringChrono.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringChrono.cpp" >
+ <Original>
+ half_minute != femto_second
+ </Original>
+ <Expanded>
+ 1 [30/1]s != 1 fs
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Stringifying std::chrono::time_point<Clock>" tags="[chrono][toString]" filename="projects/<exe-name>/ToStringChrono.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringChrono.cpp" >
+ <Original>
+ now != later
+ </Original>
+ <Expanded>
+ {iso8601-timestamp}
+!=
+{iso8601-timestamp}
+ </Expanded>
+ </Expression>
+ <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringChrono.cpp" >
+ <Original>
+ now2 != later2
+ </Original>
+ <Expanded>
+ {since-epoch-report}
+!=
+{since-epoch-report}
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
+ <TestCase name="Stringifying std::chrono::time_point<system_clock>" tags="[chrono][toString]" filename="projects/<exe-name>/ToStringChrono.cpp" >
+ <Expression success="true" type="REQUIRE" filename="projects/<exe-name>/ToStringChrono.cpp" >
+ <Original>
+ now != later
+ </Original>
+ <Expanded>
+ {iso8601-timestamp}
+!=
+{iso8601-timestamp}
+ </Expanded>
+ </Expression>
+ <OverallResult success="true"/>
+ </TestCase>
<TestCase name="Tabs and newlines show in output" tags="[.][failing][whitespace]" filename="projects/<exe-name>/MiscTests.cpp" >
<Expression success="false" type="CHECK" filename="projects/<exe-name>/MiscTests.cpp" >
<Original>
@@ -8209,7 +8291,7 @@
</Section>
<OverallResult success="true"/>
</TestCase>
- <OverallResults successes="757" failures="100" expectedFailures="21"/>
+ <OverallResults successes="765" failures="100" expectedFailures="21"/>
</Group>
- <OverallResults successes="757" failures="99" expectedFailures="21"/>
+ <OverallResults successes="765" failures="99" expectedFailures="21"/>
</Catch>