Merge branch '976-disable-assert-checks' into 'master'
[glib.git] / glib / tests / meson.build
bloba2c6973a0b15aaaa656a469c8a0791a2d0436b50
1 glib_tests = [
2   'array-test',
3   'asyncqueue',
4   'base64',
5   'bitlock',
6   'bookmarkfile',
7   'bytes',
8   'cache',
9   'charset',
10   'checksum',
11   'collate',
12   'cond',
13   'convert',
14   'dataset',
15   'date',
16   'dir',
17   'environment',
18   'error',
19   'fileutils',
20   'gdatetime',
21   'guuid',
22   'gvariant',
23   'hash',
24   'hmac',
25   'hook',
26   'hostutils',
27   'keyfile',
28   'list',
29   'logging',
30   'mainloop',
31   'mappedfile',
32   'markup',
33   'markup-parse',
34   'markup-collect',
35   'markup-escape',
36   'markup-subparser',
37   'mem-overflow',
38   'mutex',
39   'node',
40   'once',
41   'option-context',
42   'option-argv0',
43   'overflow',
44   # overflow-fallback handled separately below
45   'pattern',
46   'private',
47   'protocol',
48   'queue',
49   'rand',
50   'rcbox',
51   'rec-mutex',
52   'refcount',
53   'refcount-macro',
54   'refstring',
55   'regex',
56   'rwlock',
57   'scannerapi',
58   'search-utils',
59   'sequence',
60   'shell',
61   'slice',
62   'slist',
63   'sort',
64   'spawn-multithreaded',
65   'spawn-singlethread',
66   'strfuncs',
67   'string',
68   'testing',
69   'test-printf',
70   'thread',
71   'timeout',
72   'timer',
73   'tree',
74   'utf8-performance',
75   'utf8-pointer',
76   'utf8-validate',
77   'utf8-misc',
78   'utils',
79   'unicode',
80   'uri',
81   '1bit-mutex',
82   '642026',
85 if host_machine.system() != 'windows'
86   glib_tests += [ 'unix', 'include' ]
87 endif
89 if cc.get_id() != 'msvc'
90   glib_tests += [ 'autoptr' ]
91 endif
93 # FIXME: use new environment() object
94 # Not entirely random of course, but at least it changes over time
95 random_number = minor_version + meson.version().split('.').get(1).to_int()
97 test_env = [
98   'G_TEST_SRCDIR=' + meson.current_source_dir(),
99   'G_TEST_BUILDDIR=' + meson.current_build_dir(),
100   'G_DEBUG=gc-friendly',
101   'MALLOC_CHECK_=2',
102   'MALLOC_PERTURB_=@0@'.format(random_number % 256),
105 test_cargs = ['-DG_LOG_DOMAIN="GLib"']
107 # Tests that consistently time out on the CI infrastructure
108 slow_tests = [
109   'gvariant',
110   'sequence',
111   '642026',
114 foreach test_name : glib_tests
115   deps = [libm, thread_dep, libglib_dep]
116   source = test_name + '.c'
117   c_args = test_cargs + ['-DPCRE_STATIC']
118   if test_name == 'regex'
119     deps += [pcre]
120   endif
121   if test_name == 'gdatetime'
122     deps += [libintl]
123   endif
124   # We build the refcount test twice: one to test the function-based API,
125   # and the other to test the macro-based API that is used when disabling
126   # checks
127   if test_name == 'refcount-macro'
128     source = 'refcount.c'
129     c_args += ['-DG_DISABLE_CHECKS']
130   endif
131   exe = executable(test_name, source,
132     c_args : c_args,
133     dependencies : deps,
134     install : false,
135   )
136   # These tests may take more than 30 seconds to run on the CI infrastructure
137   if slow_tests.contains(test_name)
138     test(test_name, exe, env : test_env, timeout : 120, suite : ['glib', 'slow'])
139   else
140     test(test_name, exe, env : test_env, suite : ['glib'])
141   endif
142 endforeach
144 c_args_atomic = []
145 if cc.get_id() == 'gcc'
146   c_args_atomic += ['-Wstrict-aliasing=2']
147 endif
149 deps = [libm, thread_dep, libglib_dep]
151 exe = executable('atomic', 'atomic.c',
152   c_args : test_cargs + c_args_atomic,
153   dependencies : deps,
155 test('atomic', exe, env : test_env, suite : ['glib'])
157 # FIXME: consolidate all of these into the array
158 exe = executable('overflow-fallback', 'overflow.c',
159   c_args : test_cargs + ['-D_GLIB_TEST_OVERFLOW_FALLBACK'],
160   dependencies : deps,
161   install : false,
163 test('overflow-fallback', exe, env : test_env, suite : ['glib'])
165 exe = executable('642026-ec', '642026.c',
166   c_args : test_cargs + ['-DG_ERRORCHECK_MUTEXES'],
167   dependencies : deps,
168   install : false,
170 test('642026-ec', exe, env : test_env, timeout : 90, suite : ['glib', 'slow'])
172 exe = executable('1bit-emufutex', '1bit-mutex.c',
173   c_args : test_cargs + ['-DTEST_EMULATED_FUTEX'],
174   dependencies : deps,
175   install : false,
177 test('1bit-emufutex', exe, env : test_env, suite : ['glib'])
179 exe = executable('gwakeup', 'gwakeuptest.c', '../gwakeup.c',
180   c_args : test_cargs,
181   dependencies : deps,
182   install : false)
183 test('gwakeup', exe, env : test_env, suite : ['glib'])
185 if glib_conf.has('HAVE_EVENTFD')
186   exe = executable('gwakeup-fallback', 'gwakeuptest.c', '../gwakeup.c',
187     c_args : test_cargs + ['-DTEST_EVENTFD_FALLBACK'],
188     dependencies : deps,
189     install : false,
190   )
191   test('gwakeup-fallback', exe, env : test_env, suite : ['glib'])
192 endif
194 # test-spawn-echo helper binary required by the spawn tests above
195 executable('test-spawn-echo', 'test-spawn-echo.c',
196   c_args : test_cargs,
197   dependencies : deps,
198   install : false,
201 # some testing of gtester functionality
202 if not meson.is_cross_build() and host_system != 'windows'
203   xmllint = find_program('xmllint', required: false)
204   if xmllint.found()
205     tmpsample_xml = custom_target('tmpsample.xml',
206       output : 'tmpsample.xml',
207       build_by_default : true, # hack around meson bug, see PR #1335
208       command : [ gtester, '-k', '--quiet', '-o', '@OUTPUT@',
209                   '--test-arg=--gtester-selftest', gtester])
211     test('gtester-xmllint-check', xmllint,
212       args : ['--noout', tmpsample_xml],
213       env : test_env,
214       suite : ['glib'],
215     )
216   endif
217 endif