blob: 7c49d579c05b444fe1cb301e26126d0ce566c263 [file] [log] [blame]
glib_tests = [
'array-test',
'asyncqueue',
'base64',
'bitlock',
'bookmarkfile',
'bytes',
'cache',
'charset',
'checksum',
'collate',
'cond',
'convert',
'dataset',
'date',
'dir',
'environment',
'error',
'fileutils',
'gdatetime',
'gvariant',
'hash',
'hmac',
'hook',
'hostutils',
'keyfile',
'list',
'logging',
'mainloop',
'mappedfile',
'markup',
'markup-parse',
'markup-collect',
'markup-escape',
'markup-subparser',
'mem-overflow',
'mutex',
'node',
'once',
'option-context',
'option-argv0',
'overflow',
# overflow-fallback handled separately below
'pattern',
'private',
'protocol',
'queue',
'rand',
'rcbox',
'rec-mutex',
'refcount',
'refcount-macro',
'refstring',
'regex',
'rwlock',
'scannerapi',
'search-utils',
'sequence',
'shell',
'slice',
'slist',
'sort',
'spawn-multithreaded',
'spawn-singlethread',
'strfuncs',
'string',
'testing',
'test-printf',
'thread',
'timeout',
'timer',
'tree',
'utf8-performance',
'utf8-pointer',
'utf8-validate',
'utf8-misc',
'utils',
'unicode',
'uri',
'1bit-mutex',
'642026',
]
if host_machine.system() != 'windows'
glib_tests += [ 'unix', 'include' ]
endif
if cc.get_id() != 'msvc'
glib_tests += [ 'autoptr' ]
endif
# FIXME: use new environment() object
# Not entirely random of course, but at least it changes over time
random_number = minor_version + meson.version().split('.').get(1).to_int()
test_env = [
'G_TEST_SRCDIR=' + meson.current_source_dir(),
'G_TEST_BUILDDIR=' + meson.current_build_dir(),
'G_DEBUG=gc-friendly',
'MALLOC_CHECK_=2',
'MALLOC_PERTURB_=@0@'.format(random_number % 256),
]
test_cargs = ['-DG_LOG_DOMAIN="GLib"']
# Tests that consistently time out on the CI infrastructure
slow_tests = [
'gvariant',
'sequence',
'642026',
]
foreach test_name : glib_tests
deps = [libm, thread_dep, libglib_dep]
source = test_name + '.c'
c_args = test_cargs + ['-DPCRE_STATIC']
if test_name == 'regex'
deps += [pcre]
endif
if test_name == 'gdatetime'
deps += [libintl]
endif
# We build the refcount test twice: one to test the function-based API,
# and the other to test the macro-based API that is used when disabling
# checks
if test_name == 'refcount-macro'
source = 'refcount.c'
c_args += ['-DG_DISABLE_CHECKS']
endif
exe = executable(test_name, source,
c_args : c_args,
dependencies : deps,
install : false,
)
# These tests may take more than 30 seconds to run on the CI infrastructure
if slow_tests.contains(test_name)
test(test_name, exe, env : test_env, timeout : 120, suite : ['glib', 'slow'])
else
test(test_name, exe, env : test_env, suite : ['glib'])
endif
endforeach
c_args_atomic = []
if cc.get_id() == 'gcc'
c_args_atomic += ['-Wstrict-aliasing=2']
endif
deps = [libm, thread_dep, libglib_dep]
exe = executable('atomic', 'atomic.c',
c_args : test_cargs + c_args_atomic,
dependencies : deps,
)
test('atomic', exe, env : test_env, suite : ['glib'])
# FIXME: consolidate all of these into the array
exe = executable('overflow-fallback', 'overflow.c',
c_args : test_cargs + ['-D_GLIB_TEST_OVERFLOW_FALLBACK'],
dependencies : deps,
install : false,
)
test('overflow-fallback', exe, env : test_env, suite : ['glib'])
exe = executable('642026-ec', '642026.c',
c_args : test_cargs + ['-DG_ERRORCHECK_MUTEXES'],
dependencies : deps,
install : false,
)
test('642026-ec', exe, env : test_env, timeout : 90, suite : ['glib', 'slow'])
exe = executable('1bit-emufutex', '1bit-mutex.c',
c_args : test_cargs + ['-DTEST_EMULATED_FUTEX'],
dependencies : deps,
install : false,
)
test('1bit-emufutex', exe, env : test_env, suite : ['glib'])
exe = executable('gwakeup', 'gwakeuptest.c', '../gwakeup.c',
c_args : test_cargs,
dependencies : deps,
install : false)
test('gwakeup', exe, env : test_env, suite : ['glib'])
if glib_conf.has('HAVE_EVENTFD')
exe = executable('gwakeup-fallback', 'gwakeuptest.c', '../gwakeup.c',
c_args : test_cargs + ['-DTEST_EVENTFD_FALLBACK'],
dependencies : deps,
install : false,
)
test('gwakeup-fallback', exe, env : test_env, suite : ['glib'])
endif
# test-spawn-echo helper binary required by the spawn tests above
executable('test-spawn-echo', 'test-spawn-echo.c',
c_args : test_cargs,
dependencies : deps,
install : false,
)
# some testing of gtester functionality
if not meson.is_cross_build() and host_system != 'windows'
xmllint = find_program('xmllint', required: false)
if xmllint.found()
tmpsample_xml = custom_target('tmpsample.xml',
output : 'tmpsample.xml',
build_by_default : true, # hack around meson bug, see PR #1335
command : [ gtester, '-k', '--quiet', '-o', '@OUTPUT@',
'--test-arg=--gtester-selftest', gtester])
test('gtester-xmllint-check', xmllint,
args : ['--noout', tmpsample_xml],
env : test_env,
suite : ['glib'],
)
endif
endif