While working on CI I wanted to disable some functional tests so I used the TEST_RUNNER_EXTRA var. The problem I had was tests that have flags such as rpc_bind.py --ipv6 must be passed in quotes otherwise the --ipv6 portion will be considered an argument to test_runner.py rather than a test name.
This change allows proper parsing of quotes and complex values such as:
0TEST_RUNNER_EXTRA='--exclude "rpc_bind.py --ipv6,feature_proxy.py"'
Update:
While testing this it was noticed that test_runner.py when given --exclude "rpc_bind.py --ipv6" will exclude all rpc_bind.py tests so this PR has been updated to include a change to the test runner to only exclude the specific test if you pass an arg or exclude all tests of that name if you do not pass an arg. --exclude rpc_bind.py will exclude all three variants and --exclude rpc_bind --ipv6 will only exclude the IPV6 variant.