Support bitand and bitor in REQUIRE/CHECK

This means that bit-flag-like types with conversion to bool can be
asserted on, like so `REQUIRE(var & Flags::AddNewline)`.
This commit is contained in:
Martin Hořeňovský
2020-04-21 11:00:08 +02:00
parent 2a93a65bc2
commit 53434a2f32
11 changed files with 106 additions and 8 deletions

View File

@@ -2183,6 +2183,33 @@ Nor would this
</Section>
<OverallResult success="true"/>
</TestCase>
<TestCase name="Assertion macros support bit operators and bool conversions" tags="[bitops][compilation]" filename="tests/<exe-name>/UsageTests/Compilation.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Compilation.tests.cpp" >
<Original>
lhs | rhs
</Original>
<Expanded>
Val: 1 | Val: 2
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE_FALSE" filename="tests/<exe-name>/UsageTests/Compilation.tests.cpp" >
<Original>
!(lhs &amp; rhs)
</Original>
<Expanded>
!(Val: 1 &amp; Val: 2)
</Expanded>
</Expression>
<Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Compilation.tests.cpp" >
<Original>
HasBitOperators{ 1 } &amp; HasBitOperators{ 1 }
</Original>
<Expanded>
Val: 1 &amp; Val: 1
</Expanded>
</Expression>
<OverallResult success="true"/>
</TestCase>
<TestCase name="Assertions then sections" tags="[Tricky]" filename="tests/<exe-name>/UsageTests/Tricky.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Tricky.tests.cpp" >
<Original>
@@ -17732,7 +17759,7 @@ loose text artifact
</Section>
<OverallResult success="true"/>
</TestCase>
<OverallResults successes="1740" failures="149" expectedFailures="21"/>
<OverallResults successes="1743" failures="149" expectedFailures="21"/>
</Group>
<OverallResults successes="1740" failures="148" expectedFailures="21"/>
<OverallResults successes="1743" failures="148" expectedFailures="21"/>
</Catch>