#3220

Preserve list-valued properties in catch_discover_tests

Openxiehuanyiwants to merge intofrom

Description

catch_discover_tests(tests PROPERTIES ENVIRONMENT "FIRST=one;SECOND=two") currently passes only the first environment variable to discovered tests. Argument parsing and forwarding flatten the list-valued property, losing the property/value boundary.

Preserve argument boundaries in the public parser and carry the encoded properties as one argument into test registration. Keep the existing list semantics for the executor so multi-argument emulators continue to work.

The integration regression covers PRE_TEST and POST_BUILD, verifies the CTest properties, and runs a real testcase that reads all environment variables. It includes a literal semicolon, an empty environment value, scalar properties, and a multi-argument emulator. Both modes fail on the unchanged base and pass with this change.

Validation on Linux/GCC 13.3/CMake 3.28.3: complete all-tests build and all 157 CTest checks pass, including the existing name/tag/TEST_LIST and DL_PATHS checks. The changed fixture passes C++14 syntax and formatting checks; the Python verifier passes syntax checking. Generated amalgamated files were rebuilt locally and are excluded from the commit.

Prepared with OpenAI Codex assistance; the reported failure was reproduced and the submitted source was tested locally.

GitHub Issues

Closes #2424.

Activity

3
copilot-pull-request-reviewer[bot]reviewed18d ago
copilot-pull-request-reviewer[bot]18d ago

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

codecov[bot]18d ago

Codecov Report

:white_check_mark: All modified and coverable lines are covered by tests. :white_check_mark: Project coverage is 91.21%. Comparing base (0809213) to head (a994213).

Additional details and impacted files
@@            Coverage Diff             @@
##            devel    #3220      +/-   ##
==========================================
+ Coverage   91.18%   91.21%   +0.03%     
==========================================
  Files         205      205              
  Lines        9101     9101              
==========================================
+ Hits         8298     8301       +3     
+ Misses        803      800       -3     
:rocket: New features to boost your workflow:
  • :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.