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', ] text_rendering_tests = [ 'AVAR-1.tests', 'CFF-1.tests', 'CFF2-1.tests', 'CFF-2.tests', 'CMAP-1.tests', 'CMAP-2.tests', 'CVAR-1.tests', 'CVAR-2.tests', 'GLYF-1.tests', 'GPOS-1.tests', 'GPOS-2.tests', 'GPOS-3.tests', 'GPOS-4.tests', 'GPOS-5.tests', 'GSUB-1.tests', 'GSUB-2.tests', 'GSUB-3.tests', 'GVAR-1.tests', 'GVAR-2.tests', 'GVAR-3.tests', 'GVAR-4.tests', 'GVAR-5.tests', 'GVAR-6.tests', 'GVAR-7.tests', 'GVAR-8.tests', 'GVAR-9.tests', 'HVAR-1.tests', 'HVAR-2.tests', 'KERN-1.tests', 'KERN-2.tests', 'MORX-10.tests', 'MORX-11.tests', 'MORX-12.tests', 'MORX-13.tests', 'MORX-14.tests', 'MORX-16.tests', 'MORX-17.tests', 'MORX-18.tests', 'MORX-19.tests', 'MORX-1.tests', 'MORX-20.tests', 'MORX-21.tests', 'MORX-22.tests', 'MORX-23.tests', 'MORX-24.tests', 'MORX-25.tests', 'MORX-26.tests', 'MORX-27.tests', 'MORX-28.tests', 'MORX-29.tests', 'MORX-2.tests', 'MORX-30.tests', 'MORX-31.tests', 'MORX-32.tests', 'MORX-33.tests', 'MORX-34.tests', 'MORX-35.tests', 'MORX-36.tests', 'MORX-37.tests', 'MORX-38.tests', 'MORX-39.tests', 'MORX-3.tests', 'MORX-40.tests', 'MORX-41.tests', 'MORX-4.tests', 'MORX-5.tests', 'MORX-6.tests', 'MORX-7.tests', 'MORX-8.tests', 'MORX-9.tests', 'SHBALI-3.tests', 'SHKNDA-1.tests', ] disabled_text_rendering_tests = [ 'CMAP-3.tests', 'MORX-31.tests', 'MORX-41.tests', 'SHARAN-1.tests', 'SHBALI-1.tests', 'SHBALI-2.tests', 'SHKNDA-2.tests', 'SHKNDA-3.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