tools: optimize wildcard execution in tools/test.py

Previously for each matching test, it would execute multiple
`node -p` commands to decide the configurations of the executable.
That means if there are 100 tests matched, it will run the Node.js
executable 4*100 times to retrieve the same configurations repeatedly.
This changes the loop order so that it only execute these commands
once and reuse the results for all matching tests.

PR-URL: https://github.com/nodejs/node/pull/60266
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
This commit is contained in:
Joyee Cheung 2025-10-18 10:07:38 +02:00 committed by GitHub
parent 4d1dece375
commit d695004e7a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1712,7 +1712,7 @@ def Main():
all_unused = [ ]
unclassified_tests = [ ]
globally_unused_rules = None
for path in paths:
for arch in options.arch:
for mode in options.mode:
vm = context.GetVm(arch, mode)
@ -1733,6 +1733,7 @@ def Main():
'asan': get_asan_state(vm, context),
'pointer_compression': get_pointer_compression_state(vm, context),
}
for path in paths:
test_list = root.ListTests([], path, context, arch, mode)
unclassified_tests += test_list
cases, unused_rules = config.ClassifyTests(test_list, env)