test: parallelize sea tests when there's enough disk space

The sea tests are only run sequentially to avoid taking too much
disk space. When there is enough disk space, however, it's better
to run them in parallel, as these tests tend to be slow.

PR-URL: https://github.com/nodejs/node/pull/60604
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
This commit is contained in:
Joyee Cheung 2025-11-08 17:56:06 +01:00 committed by Antoine du Hamel
parent d5158a0a2d
commit c4eb9c3383
No known key found for this signature in database
GPG Key ID: 20B1A390B168D356

View File

@ -1,6 +1,20 @@
import sys, os
import sys, os, multiprocessing, shutil
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
import testpy
def GetConfiguration(context, root):
return testpy.SimpleTestConfiguration(context, root, 'sea')
# We don't use arch-specific out folder in Node.js; use none/none to auto
# detect release mode from GetVm and get the path to the executable.
vm = context.GetVm('none', 'none')
if not os.path.isfile(vm):
return testpy.SimpleTestConfiguration(context, root, 'sea')
# Get the size of the executable to decide whether we can run tests in parallel.
executable_size = os.path.getsize(vm)
num_cpus = multiprocessing.cpu_count()
remaining_disk_space = shutil.disk_usage('.').free
# Give it a bit of leeway by multiplying by 3.
if (executable_size * num_cpus * 3 > remaining_disk_space):
return testpy.SimpleTestConfiguration(context, root, 'sea')
return testpy.ParallelTestConfiguration(context, root, 'sea')