From 91ce6ed238b73381049f4b71216d9d988308f274 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Thu, 6 Nov 2025 15:22:25 +0100 Subject: [PATCH] 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. --- test/sea/testcfg.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/test/sea/testcfg.py b/test/sea/testcfg.py index 341d23919334c2..3eb661072bc011 100644 --- a/test/sea/testcfg.py +++ b/test/sea/testcfg.py @@ -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')