Skip to content

Ensure test class internal linkage for certain template-test types - #3161

Merged
horenmar merged 2 commits into
catchorg:develfrom
DNKpp:dev/Fix_TEMPLATE_LIST_TEST_CASE_METHOD
Jun 9, 2026
Merged

Ensure test class internal linkage for certain template-test types#3161
horenmar merged 2 commits into
catchorg:develfrom
DNKpp:dev/Fix_TEMPLATE_LIST_TEST_CASE_METHOD

Conversation

@DNKpp

@DNKpp DNKpp commented Jun 8, 2026

Copy link
Copy Markdown

As already reported on the official discord, there exists a severe issue with TEMPLATE_LIST_TEST_CASE_METHOD .

Hi, one of our Devs stumbled across a severe issue with catch. We recently started using TEMPLATE_LIST_TEST_CASE_METHOD in multiple TUs. Unfortunately, catch does not define it's internal CATCH2_INTERNAL_TEMPLATE_TEST_ class in an anonymous namespace, which then leads to UB. We just saw that, because one test-case always executes the body of another test-case from another TU. As a workaround we defined each such test-case in an explicit anonymous namespace, which fixes the problem.

image

When fixing that I found a similar issue with TEMPLATE_PRODUCT_TEST_CASE_METHOD.

@codecov

codecov Bot commented Jun 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.30%. Comparing base (195231c) to head (b9b1296).

Additional details and impacted files
@@            Coverage Diff             @@
##            devel    #3161      +/-   ##
==========================================
+ Coverage   91.26%   91.30%   +0.03%     
==========================================
  Files         204      204              
  Lines        8905     8905              
==========================================
+ Hits         8127     8130       +3     
+ Misses        778      775       -3     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@horenmar horenmar added the BugFix label Jun 9, 2026
@horenmar

horenmar commented Jun 9, 2026

Copy link
Copy Markdown
Member

Thanks

@horenmar
horenmar merged commit b7e0310 into catchorg:devel Jun 9, 2026
88 checks passed
jessecusack pushed a commit to OSUGliders/dbd2netcdf that referenced this pull request Jul 27, 2026
Patch release addressing two bug fixes in the test framework:
- OOB read when scanning for the start of a broken UTF-8 sequence
  during linebreaking (catchorg/Catch2#3096)
- ODR violation from TEMPLATE_LIST_TEST_CASE_METHOD and
  CATCH_TEMPLATE_PRODUCT_TEST_CASE (catchorg/Catch2#3161)

Test-only dependency (FetchContent); not linked into shipped binaries.
Verified: clean Release build, ctest 31/31 passing locally.

Closes mousebrains#12

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants