Resource Tuner: CI-safe test runner (whitelist) with service+config-aware skips — run.sh + README #173
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why
What’s in this PR
Pinned whitelist execution: runs only the approved /usr/bin/*Tests plus /usr/bin/resource_tuner_tests.
Early service gate: uses repo helper check_systemd_services(resource-tuner.service); if inactive → overall SKIP (no tests run).
Config-aware SKIPs:
Parser suites require either common/ or custom/:
common/: InitConfig.yaml, PropertiesConfig.yaml, ResourcesConfig.yaml, SignalsConfig.yaml
custom/: InitConfig.yaml, PropertiesConfig.yaml, ResourcesConfig.yaml, SignalsConfig.yaml, TargetConfig.yaml, ExtFeaturesConfig.yaml
resource_tuner_tests also requires tests/Configs/ResourceSysFsNodes (non-empty).
If requirements aren’t met for a suite, that suite is SKIP only; others continue.
Strict gating:
Any FAIL ⇒ overall FAIL
No FAIL & ≥1 PASS ⇒ overall PASS
No FAIL & 0 PASS (all skipped) ⇒ overall SKIP
Resilient runner:
Per-suite logs (.log) and result markers (.res)
Coverage reports (coverage.txt, missing_bins.txt) and counts
logs/resource-tuner-latest symlink to newest run
dmesg snapshot captured at start; optional warn-only scanners if toolchain provides them
Concurrency lock via flock (or dir fallback)
Optional per-suite timeouts via run_with_timeout if present (ThreadPool/RateLimiter 1800s; resource_tuner_tests 2400s; default 1200s)
Operator-friendly CLI:
--all (default), --bin <name|path>, --list, --timeout
Environment overrides:
SERVICE_NAME, RT_CONFIG_DIR
RT_REQUIRE_COMMON_FILES, RT_REQUIRE_CUSTOM_FILES (space-separated lists)