[test/shape] Run each test suite in one process

This commit is contained in:
Behdad Esfahbod 2025-04-06 00:15:12 -06:00
parent e4e4d66523
commit 2834900d92
2 changed files with 16 additions and 35 deletions

View file

@ -12,45 +12,26 @@ env.set('HAVE_CORETEXT', '@0@'.format(conf.get('HAVE_CORETEXT', 0)))
env.set('HAVE_DIRECTWRITE', '@0@'.format(conf.get('HAVE_DIRECTWRITE', 0)))
env.set('HAVE_UNISCRIBE', '@0@'.format(conf.get('HAVE_UNISCRIBE', 0)))
foreach file_name : in_house_tests
test_name = file_name.split('.')[0]
test(test_name, shape_run_tests_py,
sets = ['in-house', 'aots', 'text-rendering-tests']
foreach set : sets
# in-house -> in_house_tests, aots -> aots_tests, text-rendering-tests -> text_rendering_tests
varname = '@0@_tests'.format(set.replace('-', '_'))
varname = varname.replace('tests_tests', 'tests')
tests = get_variable(varname)
file_names = []
foreach test : tests
file_name = meson.current_source_dir() / 'data' / set / 'tests' / test
file_names += [file_name]
endforeach
test(set, shape_run_tests_py,
args: [
hb_shape,
meson.current_source_dir() / 'data' / 'in-house' / 'tests' / file_name,
file_names,
],
protocol: 'tap',
verbose: true,
env: env,
workdir: meson.current_build_dir() / '..' / '..',
suite: ['shape', 'in-house'],
)
endforeach
foreach file_name : aots_tests
test_name = file_name.split('.')[0]
test(test_name, shape_run_tests_py,
args: [
hb_shape,
meson.current_source_dir() / 'data' / 'aots' / 'tests' / file_name,
],
env: env,
workdir: meson.current_build_dir() / '..' / '..',
suite: ['shape', 'aots'],
)
endforeach
foreach file_name : text_rendering_tests
test_name = file_name.split('.')[0]
test(test_name, shape_run_tests_py,
args: [
hb_shape,
meson.current_source_dir() / 'data' / 'text-rendering-tests' / 'tests' / file_name,
],
env: env,
workdir: meson.current_build_dir() / '..' / '..',
suite: ['shape', 'text-rendering-tests'],
suite: ['shape', set],
)
endforeach

View file

@ -317,7 +317,7 @@ for filename in args:
passes += 1
print(
"# %d tests passed; %d failed; %d skipped." % (passes, fails, skips), file=sys.stderr
"# %d tests passed; %d failed; %d skipped." % (passes, fails, skips)
)
if not (fails + passes):
print("# No tests ran.")