Feature Request
Add command-line options to randomize the order in which tests are executed within each test suite.
Motivation
Randomizing test execution order helps detect hidden dependencies between tests and ensures tests are properly isolated.
Proposed Implementation
Command-line options:
--shuffle - Enable random test ordering within each suite
--seed=N - Specify random seed for reproducibility (implies --shuffle, 0=time-based)
Behavior:
- Shuffle tests within each suite independently (preserve suite boundaries)
- Use time-based random seed if
--shuffle specified without --seed
- Tests in nested suites maintain their suite grouping
Implementation plan:
- Add CLI arguments in
src/funit/FUnit.F90
- Implement shuffle logic in
src/funit/core/TestSuite.F90
- Add unit tests in
tests/funit-core/Test_TestSuite_Shuffle.F90
- Add integration test (ctest with shell script)
Testing
- Unit tests to verify shuffle behavior, seed reproducibility, suite boundary preservation
- Integration tests via command-line execution
Feature Request
Add command-line options to randomize the order in which tests are executed within each test suite.
Motivation
Randomizing test execution order helps detect hidden dependencies between tests and ensures tests are properly isolated.
Proposed Implementation
Command-line options:
--shuffle- Enable random test ordering within each suite--seed=N- Specify random seed for reproducibility (implies --shuffle, 0=time-based)Behavior:
--shufflespecified without--seedImplementation plan:
src/funit/FUnit.F90src/funit/core/TestSuite.F90tests/funit-core/Test_TestSuite_Shuffle.F90Testing