test/functional/test_runner.py kept a large, manually ordered list of the
functional test scripts (BASE_SCRIPTS). Adding a test meant editing that list
and guessing a run-time position for it, and the shared, hand-ordered list was a
recurring source of merge conflicts.
This replaces the list with get_base_scripts(), which discovers the default
tests by scanning the functional test directory.
Result
- Adding a test is just adding the file — a correctly named
*.pyis picked up automatically; no list entry, no run-time bucket to guess. - No more merge conflicts on a shared, hand-ordered array.
- Behavior is unchanged: the discovered set of test invocations is identical to the previous list, so which tests run (and how) is the same.
Kept explicit (cannot be derived from the filesystem)
TEST_PARAMS— tests invoked multiple times with different arguments (e.g.rpc_bind.py --ipv4/--ipv6/--nonloopback).EXTENDED_SCRIPTS— extended-only tests.LONGEST_BASE_SCRIPT— the longest test, scheduled first so parallel runtime is unaffected.
test/functional/README.md is updated with the simpler instructions for adding a
test.