1tests = [ 2 'basics', 3 'preprocess', 4 'full-font', 5 'cff-full-font', 6 'japanese', 7 'cff-japanese', 8 'cff.notoserifmyanmar', 9 'glyf_bug_3131', 10 'layout', 11 'layout.gpos', 12 'layout.gpos2', 13 'layout.gpos3', 14 'layout.gpos4', 15 'layout.gpos5', 16 'layout.gpos6', 17 'layout.gpos8', 18 'layout.gpos8.amiri', 19 'layout.gpos9', 20 'layout.gsub3', 21 'layout.gsub5', 22 'layout.gsub5_format2', 23 'layout.gsub6', 24 'layout.gsub8', 25 'layout.gdef', 26 'layout.gdef.glyphset', 27 'layout.khmer', 28 'layout.context', 29 'layout.context_format2', 30 'layout.gdef-varstore', 31 'layout.gdef-attachlist', 32 'layout.notonastaliqurdu', 33 'layout.tinos', 34 'layout.duplicate_features', 35 'layout.unsorted_featurelist', 36 'layout.drop_feature', 37 'no_layout_closure', 38 'cmap', 39 'cmap14', 40 'sbix', 41 'colr', 42 'colr_glyphs', 43 'math', 44 'math_coverage_offset', 45 'subset_base', 46 # TODO: re-enable once colrv1 subsetting is stabilized. 47 # 'colrv1.notoemoji', 48 'colrv1', 49 'colrv1_subset_varstore', 50 'colr_with_components', 51 'cbdt', 52 'variable', 53 'glyph_names', 54 'glyph_map', 55 'post', 56 '32bit_var_store', 57 'pin_all_at_default', 58 'instantiate_base', 59 'instantiate_colrv1', 60 'instantiate_glyf', 61 'instantiate_cff2', 62 'full_instance', 63 'instance_feature_variations', 64 'instance_no_double_free', 65 'mvar_full_instance', 66 'instance_comp_glyph_empty_child', 67 'post_apply_mvar_delta', 68 'apply_cvar_delta', 69 'collect_name_ids', 70 'instantiate_cff2_update_metrics', 71 'layout.empty_ligature_offset', 72 'glyf_partial_instancing', 73 'mvar_partial_instance', 74 'update_def_wght', 75 'feature_variations_partial_instance', 76 'gdef_partial_instance', 77 'value_format_partial_instance', 78 'feature_variation_instance_collect_lookups', 79 'sync_vmetrics', 80 'empty_region_vardata', 81 'colrv1_partial_instance', 82] 83 84if get_option('experimental_api') 85 tests += [ 86 'iftb_requirements', 87 ] 88endif 89 90repack_tests = [ 91 'basic', 92 'prioritization', 93 'table_duplication', 94 'isolation', 95 'advanced_prioritization', 96 'space_splitting', 97] 98 99run_test = find_program('run-tests.py') 100 101foreach t : tests 102 fname = '@[email protected]'.format(t) 103 104 test(t, run_test, 105 args: [ 106 hb_subset, 107 meson.current_source_dir() / 'data' / 'tests' / fname, 108 ], 109 # as the tests are ran concurrently let's raise acceptable time here 110 # ideally better to break and let meson handles them in parallel 111 timeout: 500, 112 workdir: meson.current_build_dir() / '..' / '..', 113 suite: 'subset', 114 ) 115endforeach 116 117run_repack_test = find_program('run-repack-tests.py') 118 119foreach t : repack_tests 120 fname = '@[email protected]'.format(t) 121 122 test(t, run_repack_test, 123 args: [ 124 hb_subset, 125 meson.current_source_dir() / 'data' / 'repack_tests' / fname, 126 ], 127 workdir: meson.current_build_dir() / '..' / '..', 128 suite: ['subset', 'repack'], 129 ) 130endforeach 131