mirror of
https://github.com/zebrajr/node.git
synced 2025-12-06 12:20:27 +01:00
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:
parent
4d1dece375
commit
d695004e7a
|
|
@ -1712,27 +1712,28 @@ def Main():
|
||||||
all_unused = [ ]
|
all_unused = [ ]
|
||||||
unclassified_tests = [ ]
|
unclassified_tests = [ ]
|
||||||
globally_unused_rules = None
|
globally_unused_rules = None
|
||||||
for path in paths:
|
|
||||||
for arch in options.arch:
|
for arch in options.arch:
|
||||||
for mode in options.mode:
|
for mode in options.mode:
|
||||||
vm = context.GetVm(arch, mode)
|
vm = context.GetVm(arch, mode)
|
||||||
if not exists(vm):
|
if not exists(vm):
|
||||||
print("Can't find shell executable: '%s'" % vm)
|
print("Can't find shell executable: '%s'" % vm)
|
||||||
continue
|
continue
|
||||||
archEngineContext = Execute([vm, "-p", "process.arch"], context)
|
archEngineContext = Execute([vm, "-p", "process.arch"], context)
|
||||||
vmArch = archEngineContext.stdout.rstrip()
|
vmArch = archEngineContext.stdout.rstrip()
|
||||||
if archEngineContext.exit_code != 0 or vmArch == "undefined":
|
if archEngineContext.exit_code != 0 or vmArch == "undefined":
|
||||||
print("Can't determine the arch of: '%s'" % vm)
|
print("Can't determine the arch of: '%s'" % vm)
|
||||||
print(archEngineContext.stderr.rstrip())
|
print(archEngineContext.stderr.rstrip())
|
||||||
continue
|
continue
|
||||||
env = {
|
env = {
|
||||||
'mode': mode,
|
'mode': mode,
|
||||||
'system': utils.GuessOS(),
|
'system': utils.GuessOS(),
|
||||||
'arch': vmArch,
|
'arch': vmArch,
|
||||||
'type': get_env_type(vm, options.type, context),
|
'type': get_env_type(vm, options.type, context),
|
||||||
'asan': get_asan_state(vm, context),
|
'asan': get_asan_state(vm, context),
|
||||||
'pointer_compression': get_pointer_compression_state(vm, context),
|
'pointer_compression': get_pointer_compression_state(vm, context),
|
||||||
}
|
}
|
||||||
|
for path in paths:
|
||||||
test_list = root.ListTests([], path, context, arch, mode)
|
test_list = root.ListTests([], path, context, arch, mode)
|
||||||
unclassified_tests += test_list
|
unclassified_tests += test_list
|
||||||
cases, unused_rules = config.ClassifyTests(test_list, env)
|
cases, unused_rules = config.ClassifyTests(test_list, env)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user