From 2834900d9274f10691ffde299d926877142b6e4f Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sun, 6 Apr 2025 00:15:12 -0600 Subject: [PATCH] [test/shape] Run each test suite in one process --- test/shape/meson.build | 49 +++++++++++++---------------------------- test/shape/run-tests.py | 2 +- 2 files changed, 16 insertions(+), 35 deletions(-) diff --git a/test/shape/meson.build b/test/shape/meson.build index 2c8d03a51..a9aa1acd4 100644 --- a/test/shape/meson.build +++ b/test/shape/meson.build @@ -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 diff --git a/test/shape/run-tests.py b/test/shape/run-tests.py index 79810de76..a18146b47 100755 --- a/test/shape/run-tests.py +++ b/test/shape/run-tests.py @@ -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.")