[PATCH 0/9] rteval: Fix measurement module hangs and improve test infrastructure
John Kacur <[email protected]> Tue, 5 May 2026 13:43:44 -0400
| Newsgroups | org.kernel.vger.linux-rt-users |
|---|---|
| Message-ID | <[email protected]> |
This series addresses critical bug fixes in measurement module error handling
and significantly improves rteval's test infrastructure.
Patches 1-2: Critical bug fixes for measurement modules
Fix hangs in timerlat and cyclictest when measurement tools crash or produce
malformed output. Both modules now properly handle partial output, limit
SIGINT retries, and ensure cleanup always completes.
Patches 3-5: Testing and configuration improvements
Add comprehensive regression tests to verify error handling fixes, update
config files for clarity, and fix e2e test patterns to match current output.
Patches 6-9: Test infrastructure organization
Refactor and consolidate all tests under tests/ directory with consistent
naming (unit-tests, e2e-tests, regression-tests, cpuset-tests). Move cpuset
tests from local/ to tests/cpusets/ with comprehensive documentation.
Key improvements:
- Prevents rteval hangs when measurement tools crash (RHEL-140898, RHEL-172903)
- Adds regression tests with mocked failure scenarios
- Consolidates test infrastructure under tests/ directory
- Provides consistent Makefile targets for all test types
- Includes comprehensive test documentation
John Kacur (9):
rteval: Fix timerlat error handling to prevent hangs
rteval: Fix cyclictest error handling to prevent hangs
rteval: Update config files to clarify measurement module selection
rteval: Add regression tests for measurement module error handling
rteval: Fix e2e test patterns for current rteval behavior
rteval: Refactor core sharing validation test into proper unittest
rteval: Rename unittest target to unit-tests for consistency
rteval: Organize cpuset tests and make core sharing tests skip
gracefully
rteval: Move run_tests.sh to tests/ and remove obsolete test scripts
Makefile | 54 +-
rteval.conf | 5 +-
rteval/modules/measurement/cyclictest.py | 124 +--
rteval/modules/measurement/timerlat.py | 318 ++++----
rteval/rteval.conf | 12 +
test_full_validation.py | 151 ----
tests/cpusets/README.md | 199 +++++
tests/cpusets/test-cpusets.sh | 732 ++++++++++++++++++
tests/e2e/loads.t | 6 +-
tests/e2e/measurement.t | 4 +-
tests/regression/README.md | 155 ++++
.../mock-cyclictest-partial-output.py | 165 ++++
.../mock-rtla-timerlat-partial-output.py | 138 ++++
.../test-cyclictest-error-handling.sh | 225 ++++++
.../test-timerlat-error-handling.sh | 228 ++++++
run_tests.sh => tests/run_tests.sh | 10 +-
tests/test_core_sharing_validation.py | 155 ++++
17 files changed, 2318 insertions(+), 363 deletions(-)
delete mode 100644 test_full_validation.py
create mode 100644 tests/cpusets/README.md
create mode 100755 tests/cpusets/test-cpusets.sh
create mode 100644 tests/regression/README.md
create mode 100755 tests/regression/mock-cyclictest-partial-output.py
create mode 100755 tests/regression/mock-rtla-timerlat-partial-output.py
create mode 100755 tests/regression/test-cyclictest-error-handling.sh
create mode 100755 tests/regression/test-timerlat-error-handling.sh
rename run_tests.sh => tests/run_tests.sh (87%)
create mode 100755 tests/test_core_sharing_validation.py
--
2.54.0