From 55bd2805833e510c8aada7a35af6ec125c819abb Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 24 May 2018 11:03:04 +0100 Subject: Classify the test suite Meson allows us to classify each test in the test suite using one or more tags; this allows us to specify what kind of tests we want to run inside our CI infrastructure, for instance by tagging the "slow" tests that should have a special time out value, or that should only be run on demand to avoid hammering the build server. --- tests/meson.build | 55 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/tests/meson.build b/tests/meson.build index e134c3290..6b0cb2b02 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -37,27 +37,36 @@ resources_h = custom_target('resources.h', ], ) +# [ test name, [ test suites ], needs_resources (opt) ] +# +# test suites: +# - conform: Behavior conformance test +# - security: CVEs and the like +# - slow: Needs special timeout value +# - format: Per-format test +# - io: Loading/saving +# - ops: Pixel operations installed_tests = [ - [ 'animation' ], - [ 'cve-2015-4491', true ], - [ 'pixbuf-fail' ], - [ 'pixbuf-icon-serialize' ], - [ 'pixbuf-randomly-modified' ], - [ 'pixbuf-threads' ], - [ 'pixbuf-icc' ], - [ 'pixbuf-jpeg' ], - [ 'pixbuf-dpi' ], - [ 'pixbuf-pixdata', true ], - [ 'pixbuf-stream' ], - [ 'pixbuf-reftest' ], - [ 'pixbuf-resource', true ], - [ 'pixbuf-scale' ], - [ 'pixbuf-scale-two-step' ], - [ 'pixbuf-short-gif-write' ], - [ 'pixbuf-save' ], - [ 'pixbuf-readonly-to-mutable' ], - [ 'pixbuf-composite' ], - [ 'pixbuf-area-updated' ], + [ 'animation', ['format'], ], + [ 'cve-2015-4491', ['security'], true ], + [ 'pixbuf-fail', ['conform'], ], + [ 'pixbuf-icon-serialize', ['conform'], ], + [ 'pixbuf-randomly-modified', ['slow'], ], + [ 'pixbuf-threads', ['io'], ], + [ 'pixbuf-icc', ['io'], ], + [ 'pixbuf-jpeg', ['format'], ], + [ 'pixbuf-dpi', ['io'], ], + [ 'pixbuf-pixdata', ['format'], true ], + [ 'pixbuf-stream', ['io'], ], + [ 'pixbuf-reftest', ['conform'], ], + [ 'pixbuf-resource', ['io'], true ], + [ 'pixbuf-scale', ['ops'], ], + [ 'pixbuf-scale-two-step', ['ops'], ], + [ 'pixbuf-short-gif-write', ['format'], ], + [ 'pixbuf-save', ['io'] ], + [ 'pixbuf-readonly-to-mutable', ['conform'], ], + [ 'pixbuf-composite', ['ops'], ], + [ 'pixbuf-area-updated', ['slow'], ], ] test_data = [ @@ -99,7 +108,8 @@ test_deps = gdk_pixbuf_deps + [ gdkpixbuf_dep ] foreach t: installed_tests test_name = t[0] test_sources = [ test_name + '.c', 'test-common.c' ] - needs_resources = t.get(1, false) + test_suites = t[1] + needs_resources = t.get(2, false) if needs_resources test_sources += [ resources_c, resources_h ] endif @@ -128,13 +138,14 @@ foreach t: installed_tests ) # Two particularly slow tests - if test_name == 'pixbuf-area-updated' or test_name == 'pixbuf-randomly-modified' + if test_suites.contains('slow') timeout = 300 else timeout = 30 endif test(test_name, test_bin, + suite: test_suites, args: [ '-k', '--tap' ], env: [ 'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()), -- cgit v1.2.1