Skip to content

Centralize the test filtering logic to test_description_m - #91

Merged
rouson merged 47 commits into
mainfrom
filter-across-compilers
Aug 15, 2025
Merged

Centralize the test filtering logic to test_description_m#91
rouson merged 47 commits into
mainfrom
filter-across-compilers

Conversation

@rouson

@rouson rouson commented Aug 11, 2025

Copy link
Copy Markdown
Contributor

This PR lifts the previous burden on users to write statements that filter the set of test to run based on the value of the command-line flag --contains.

rouson and others added 30 commits August 9, 2025 07:16
This commit introduces the test_harness_t and test_fixture_t
derived types and uses them to refactor and simplify the test-suite
driver program: test/main.F90.
This commit reduces the amount of code that end users must write
by moving the reporting of the final tally of test passes, test
count, and skipped tests to the test_harness_t's "report"
type-bound procedure.
This commit the code that checks whether the test suite is running
in GitHub CI and checks whether the user requested to run the
command_line_t tests.  The code is moved from the test-suite driver
to the actual test, which further simplifies the test-suite main
program.
This commit adds a binary operator that produces a test_diagnosis_t
result when applied to a logical operand.
Caveat: The newly refactored test/main.f90 program causes an ICE
with gfortran 13.4.
move pointer declarations & definitions outside a block construct
rouson added 13 commits August 10, 2025 21:46
also delete redundant example
Also switch file to lower-case .f90 extension because the
preprocessor is no longer needed.
This commit prepares for moving the test-filtering logic to one
central location in test_description_s rather than having versions
of the logic distributed across all tests.  Because the
deprecated vector_test_description_t is convoluted due to
preprocessor  directives, extracting the filter from that file
would be challenging, which motivates the removal.  This is a
breaking change for any codes that use vector_test_description_t.
This commit further simplifies the code users must write inside
test_t results() functions.  All test-filtering logic is now
transparent.
@bonachea

Copy link
Copy Markdown
Member

Is this PR meant to subsume PR #86?

@bonachea bonachea linked an issue Aug 12, 2025 that may be closed by this pull request

@bonachea bonachea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the improvements in test filtering! This looks like a good solution to issue #67

I've copied over a few suggestions from PR #86 (under the assumption this PR subsumes that one), and added one question based on a quick skim.

Comment thread demo/test/main.f90 Outdated
Comment thread test/legacy-main.F90 Outdated
Comment thread test/main.F90 Outdated
Comment thread include/language-support.F90
Comment thread test/main.F90
rouson and others added 4 commits August 13, 2025 15:19
Co-authored-by: Dan Bonachea <dobonachea@lbl.gov>
Co-authored-by: Dan Bonachea <dobonachea@lbl.gov>
Co-authored-by: Dan Bonachea <dobonachea@lbl.gov>
Co-authored-by: Dan Bonachea <dobonachea@lbl.gov>

@bonachea bonachea left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM based on quick skim of the sources

@rouson
rouson merged commit 10a8a80 into main Aug 15, 2025
8 checks passed
@rouson
rouson deleted the filter-across-compilers branch August 15, 2025 05:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move --contains test filtering logic into Julienne

2 participants