tests = [
  'basics',
  'full-font',
  'cff-full-font',
  'japanese',
  'cff-japanese',
  'cff.notoserifmyanmar',
  'glyf_bug_3131',
  'layout',
  'layout.gpos',
  'layout.gpos2',
  'layout.gpos3',
  'layout.gpos4',
  'layout.gpos5',
  'layout.gpos6',
  'layout.gpos8',
  'layout.gpos8.amiri',
  'layout.gpos9',
  'layout.gsub3',
  'layout.gsub5',
  'layout.gsub6',
  'layout.gsub8',
  'layout.gdef',
  'layout.khmer',
  'layout.context',
  'layout.gdef-varstore',
  'layout.gdef-attachlist',
  'layout.notonastaliqurdu',
  'layout.tinos',
  'layout.duplicate_features',
  'cmap',
  'cmap14',
  'sbix',
  'colr',
  'math',
# TODO: re-enable once colrv1 subsetting is stabilized.
# 'colrv1.notoemoji',
# 'colrv1',
  'colr_with_components',
  'cbdt',
  'variable',
  'glyph_names',
]

repack_tests = [
  'basic',
  'prioritization',
  'table_duplication',
  'isolation',
  'advanced_prioritization',
  'space_splitting',
]


run_test = find_program('run-tests.py')

foreach t : tests
  fname = '@0@.tests'.format(t)

  test(t, run_test,
    args: [
      hb_subset,
      join_paths(meson.current_source_dir(), 'data', 'tests', fname),
    ],
    # as the tests are ran concurrently let's raise acceptable time here
    # ideally better to break and let meson handles them in parallel
    timeout: 500,
    workdir: join_paths(meson.current_build_dir(), '..', '..'),
    suite: 'subset',
  )
endforeach

run_repack_test = find_program('run-repack-tests.py')

foreach t : repack_tests
  fname = '@0@.tests'.format(t)

  test(t, run_repack_test,
    args: [
      hb_subset,
      join_paths(meson.current_source_dir(), 'data', 'repack_tests', fname),
    ],
    workdir: join_paths(meson.current_build_dir(), '..', '..'),
    suite: ['subset', 'repack'],
  )
endforeach
