in_house_tests = [ 'aat-trak.tests', 'aat-morx.tests', 'arabic-fallback-shaping.tests', 'arabic-feature-order.tests', 'arabic-like-joining.tests', 'arabic-mark-attach.tests', 'arabic-mark-order.tests', 'arabic-stch.tests', 'automatic-fractions.tests', 'cluster.tests', 'collections.tests', 'color-fonts.tests', 'context-matching.tests', 'cursive-positioning.tests', 'default-ignorables.tests', 'emoji.tests', 'fallback-positioning.tests', 'hangul-jamo.tests', 'hyphens.tests', 'indic-consonant-with-stacker.tests', 'indic-decompose.tests', 'indic-init.tests', 'indic-joiner-candrabindu.tests', 'indic-joiners.tests', 'indic-old-spec.tests', 'indic-pref-blocking.tests', 'indic-script-extensions.tests', 'indic-special-cases.tests', 'indic-syllable.tests', 'indic-vowel-letter-spoofing.tests', 'kern-format2.tests', 'khmer-mark-order.tests', 'khmer-misc.tests', 'language-tags.tests', 'ligature-id.tests', 'macos.tests', 'mark-attachment.tests', 'mark-filtering-sets.tests', 'mongolian-variation-selector.tests', 'myanmar-syllable.tests', 'myanmar-zawgyi.tests', 'none-directional.tests', 'positioning-features.tests', 'rand.tests', 'rotation.tests', 'spaces.tests', 'simple.tests', 'sinhala.tests', 'tibetan-contractions-1.tests', 'tibetan-contractions-2.tests', 'tibetan-vowels.tests', 'use.tests', 'use-indic3.tests', 'use-marchen.tests', 'use-syllable.tests', 'variations-rvrn.tests', 'vertical.tests', 'zero-width-marks.tests', ] aots_tests = [ 'classdef1_empty.tests', 'classdef1_multiple.tests', 'classdef1_single.tests', 'classdef1.tests', 'classdef2_empty.tests', 'classdef2_multiple.tests', 'classdef2_single.tests', 'classdef2.tests', 'gpos_chaining1_boundary.tests', 'gpos_chaining1_lookupflag.tests', 'gpos_chaining1_multiple_subrules.tests', 'gpos_chaining1_next_glyph.tests', 'gpos_chaining1_simple.tests', 'gpos_chaining1_successive.tests', 'gpos_chaining2_boundary.tests', 'gpos_chaining2_lookupflag.tests', 'gpos_chaining2_multiple_subrules.tests', 'gpos_chaining2_next_glyph.tests', 'gpos_chaining2_simple.tests', 'gpos_chaining2_successive.tests', 'gpos_chaining3_boundary.tests', 'gpos_chaining3_lookupflag.tests', 'gpos_chaining3_next_glyph.tests', 'gpos_chaining3_simple.tests', 'gpos_chaining3_successive.tests', 'gpos_context1_boundary.tests', 'gpos_context1_expansion.tests', 'gpos_context1_lookupflag.tests', 'gpos_context1_multiple_subrules.tests', 'gpos_context1_next_glyph.tests', 'gpos_context1_simple.tests', 'gpos_context1_successive.tests', 'gpos_context2_boundary.tests', 'gpos_context2_classes.tests', 'gpos_context2_expansion.tests', 'gpos_context2_lookupflag.tests', 'gpos_context2_multiple_subrules.tests', 'gpos_context2_next_glyph.tests', 'gpos_context2_simple.tests', 'gpos_context2_successive.tests', 'gpos_context3_boundary.tests', 'gpos_context3_lookupflag.tests', 'gpos_context3_next_glyph.tests', 'gpos_context3_simple.tests', 'gpos_context3_successive.tests', 'gpos1_1_lookupflag.tests', 'gpos1_1_simple.tests', 'gpos1_2_lookupflag.tests', 'gpos1_2.tests', 'gpos2_1_lookupflag.tests', 'gpos2_1_next_glyph.tests', 'gpos2_1_simple.tests', 'gpos2_1.tests', 'gpos2_2.tests', 'gpos3_lookupflag.tests', 'gpos3.tests', 'gpos4_lookupflag.tests', 'gpos4_multiple_anchors.tests', 'gpos4_simple.tests', 'gpos5.tests', 'gpos6.tests', 'gpos7_1.tests', 'gpos9.tests', 'gsub_chaining1_boundary.tests', 'gsub_chaining1_lookupflag.tests', 'gsub_chaining1_multiple_subrules.tests', 'gsub_chaining1_next_glyph.tests', 'gsub_chaining1_simple.tests', 'gsub_chaining1_successive.tests', 'gsub_chaining2_boundary.tests', 'gsub_chaining2_lookupflag.tests', 'gsub_chaining2_multiple_subrules.tests', 'gsub_chaining2_next_glyph.tests', 'gsub_chaining2_simple.tests', 'gsub_chaining2_successive.tests', 'gsub_chaining3_boundary.tests', 'gsub_chaining3_lookupflag.tests', 'gsub_chaining3_next_glyph.tests', 'gsub_chaining3_simple.tests', 'gsub_chaining3_successive.tests', 'gsub_context1_boundary.tests', 'gsub_context1_expansion.tests', 'gsub_context1_lookupflag.tests', 'gsub_context1_multiple_subrules.tests', 'gsub_context1_next_glyph.tests', 'gsub_context1_simple.tests', 'gsub_context1_successive.tests', 'gsub_context2_boundary.tests', 'gsub_context2_classes.tests', 'gsub_context2_expansion.tests', 'gsub_context2_lookupflag.tests', 'gsub_context2_multiple_subrules.tests', 'gsub_context2_next_glyph.tests', 'gsub_context2_simple.tests', 'gsub_context2_successive.tests', 'gsub_context3_boundary.tests', 'gsub_context3_lookupflag.tests', 'gsub_context3_next_glyph.tests', 'gsub_context3_simple.tests', 'gsub_context3_successive.tests', 'gsub1_1_lookupflag.tests', 'gsub1_1_modulo.tests', 'gsub1_1_simple.tests', 'gsub1_2_lookupflag.tests', 'gsub1_2_simple.tests', 'gsub2_1_lookupflag.tests', 'gsub2_1_multiple_sequences.tests', 'gsub2_1_simple.tests', 'gsub3_1_lookupflag.tests', 'gsub3_1_multiple.tests', 'gsub3_1_simple.tests', 'gsub4_1_lookupflag.tests', 'gsub4_1_multiple_ligatures.tests', 'gsub4_1_multiple_ligsets.tests', 'gsub4_1_simple.tests', 'gsub7.tests', 'lookupflag_ignore_attach.tests', 'lookupflag_ignore_base.tests', 'lookupflag_ignore_combination.tests', 'lookupflag_ignore_ligatures.tests', 'lookupflag_ignore_marks.tests', ] # to import text_rendering_tests from data/text-rendering-tests/meson.build subdir('data/text-rendering-tests') shaping_run_tests_py = find_program('run-tests.py') foreach file_name : in_house_tests test_name = file_name.split('.')[0].underscorify() test(test_name, shaping_run_tests_py, args: [ hb_shape, meson.current_source_dir() / 'data' / 'in-house' / 'tests' / file_name, ], workdir: meson.current_build_dir() / '..' / '..', suite: ['shaping', 'in-house'], ) endforeach foreach file_name : aots_tests test_name = file_name.split('.')[0].underscorify() test(test_name, shaping_run_tests_py, args: [ hb_shape, meson.current_source_dir() / 'data' / 'aots' / 'tests' / file_name, ], workdir: meson.current_build_dir() / '..' / '..', suite: ['shaping', 'aots'], ) endforeach foreach file_name : text_rendering_tests test_name = file_name.split('.')[0].underscorify() test(test_name, shaping_run_tests_py, args: [ hb_shape, meson.current_source_dir() / 'data' / 'text-rendering-tests' / 'tests' / file_name, ], workdir: meson.current_build_dir() / '..' / '..', suite: ['shaping', 'text-rendering-tests'], ) endforeach