Allow using only types in TEMPLATE_TEST_CASE_SIG. (#2995)

Right now `TEMPLATE_TEST_CASE_SIG` fails to compile when the signature contains only types:

```
TEMPLATE_TEST_CASE_SIG(
  "TemplateTestSig: compiles with two type parameters",
  "[template][onlytypes]",
  ((typename U, typename V), U, V), (int,int)) {}
```

The trick is to resolve the ambiguity between the two overloads of
`get_wrapper` (`TypeList` and `Nttp`) by making one match more strongly.
We also need to allow `reg_test` to register more than one type.

Add unit tests.

Fixes #2680

---------

Co-authored-by: Martin Hořeňovský <martin.horenovsky@gmail.com>
This commit is contained in:
Clement Courbet
2025-07-08 14:26:25 +02:00
committed by GitHub
parent 8dc9f1a124
commit 2de12cb05f
20 changed files with 182 additions and 32 deletions

View File

@@ -14483,6 +14483,18 @@ Message from section two
</Section>
<OverallResult success="true" skips="0"/>
</TestCase>
<TestCase name="TemplateTestSig: compiles with a single int parameter - 1" tags="[singleint][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
<OverallResult success="false" skips="0"/>
</TestCase>
<TestCase name="TemplateTestSig: compiles with a single int parameter - 3" tags="[singleint][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
<OverallResult success="false" skips="0"/>
</TestCase>
<TestCase name="TemplateTestSig: compiles with a single int parameter - 6" tags="[singleint][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
<OverallResult success="false" skips="0"/>
</TestCase>
<TestCase name="TemplateTestSig: compiles with two type parameters - int,int" tags="[onlytypes][template]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
<OverallResult success="false" skips="0"/>
</TestCase>
<TestCase name="TemplateTestSig: vectors can be sized and resized - (std::tuple&lt;int, float>), 6" tags="[nttp][template][vector]" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
<Expression success="true" type="REQUIRE" filename="tests/<exe-name>/UsageTests/Misc.tests.cpp" >
<Original>
@@ -21971,6 +21983,6 @@ Approx( -1.95996398454005449 )
</Section>
<OverallResult success="true" skips="0"/>
</TestCase>
<OverallResults successes="2087" failures="147" expectedFailures="35" skips="12"/>
<OverallResultsCases successes="313" failures="86" expectedFailures="14" skips="6"/>
<OverallResults successes="2087" failures="151" expectedFailures="35" skips="12"/>
<OverallResultsCases successes="313" failures="90" expectedFailures="14" skips="6"/>
</Catch2TestRun>