Merge branch '896-variant-type-docs' into 'master'
[glib.git] / glib / tests / meson.build
blobcf05bc74f4e4d790ed0387983b2e5f1139543e2e
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   'gvariant',
22   'hash',
23   'hmac',
24   'hook',
25   'hostutils',
26   'keyfile',
27   'list',
28   'logging',
29   'mainloop',
30   'mappedfile',
31   'markup',
32   'markup-parse',
33   'markup-collect',
34   'markup-escape',
35   'markup-subparser',
36   'mem-overflow',
37   'mutex',
38   'node',
39   'once',
40   'option-context',
41   'option-argv0',
42   'overflow',
43   # overflow-fallback handled separately below
44   'pattern',
45   'private',
46   'protocol',
47   'queue',
48   'rand',
49   'rec-mutex',
50   'refcount',
51   'refcount-macro',
52   'regex',
53   'rwlock',
54   'scannerapi',
55   'search-utils',
56   'sequence',
57   'shell',
58   'slice',
59   'slist',
60   'sort',
61   'spawn-multithreaded',
62   'spawn-singlethread',
63   'strfuncs',
64   'string',
65   'testing',
66   'test-printf',
67   'thread',
68   'timeout',
69   'timer',
70   'tree',
71   'utf8-performance',
72   'utf8-pointer',
73   'utf8-validate',
74   'utf8-misc',
75   'utils',
76   'unicode',
77   'uri',
78   '1bit-mutex',
79   '642026',
82 if host_machine.system() != 'windows'
83   glib_tests += [ 'unix', 'include' ]
84 endif
86 if cc.get_id() != 'msvc'
87   glib_tests += [ 'autoptr' ]
88 endif
90 # FIXME: use new environment() object
91 # Not entirely random of course, but at least it changes over time
92 random_number = minor_version + meson.version().split('.').get(1).to_int()
94 test_env = [
95   'G_TEST_SRCDIR=' + meson.current_source_dir(),
96   'G_TEST_BUILDDIR=' + meson.current_build_dir(),
97   'G_DEBUG=gc-friendly',
98   'MALLOC_CHECK_=2',
99   'MALLOC_PERTURB_=@0@'.format(random_number % 256),
102 test_cargs = ['-DG_LOG_DOMAIN="GLib"']
104 # Tests that consistently time out on the CI infrastructure
105 slow_tests = [
106   'gvariant',
107   'sequence',
108   '642026',
111 foreach test_name : glib_tests
112   deps = [libm, thread_dep, libglib_dep]
113   source = test_name + '.c'
114   c_args = test_cargs + ['-DPCRE_STATIC']
115   if test_name == 'regex'
116     deps += [pcre]
117   endif
118   if test_name == 'gdatetime'
119     deps += [libintl]
120   endif
121   # We build the refcount test twice: one to test the function-based API,
122   # and the other to test the macro-based API that is used when disabling
123   # checks
124   if test_name == 'refcount-macro'
125     source = 'refcount.c'
126     c_args += ['-DG_DISABLE_CHECKS']
127   endif
128   exe = executable(test_name, source,
129     c_args : c_args,
130     dependencies : deps,
131     install : false,
132   )
133   # These tests may take more than 30 seconds to run on the CI infrastructure
134   if slow_tests.contains(test_name)
135     test(test_name, exe, env : test_env, timeout : 120, suite : ['glib', 'slow'])
136   else
137     test(test_name, exe, env : test_env, suite : ['glib'])
138   endif
139 endforeach
141 c_args_atomic = []
142 if cc.get_id() == 'gcc'
143   c_args_atomic += ['-Wstrict-aliasing=2']
144 endif
146 deps = [libm, thread_dep, libglib_dep]
148 exe = executable('atomic', 'atomic.c',
149   c_args : test_cargs + c_args_atomic,
150   dependencies : deps,
152 test('atomic', exe, env : test_env, suite : ['glib'])
154 # FIXME: consolidate all of these into the array
155 exe = executable('overflow-fallback', 'overflow.c',
156   c_args : test_cargs + ['-D_GLIB_TEST_OVERFLOW_FALLBACK'],
157   dependencies : deps,
158   install : false,
160 test('overflow-fallback', exe, env : test_env, suite : ['glib'])
162 exe = executable('642026-ec', '642026.c',
163   c_args : test_cargs + ['-DG_ERRORCHECK_MUTEXES'],
164   dependencies : deps,
165   install : false,
167 test('642026-ec', exe, env : test_env, timeout : 90, suite : ['glib', 'slow'])
169 exe = executable('1bit-emufutex', '1bit-mutex.c',
170   c_args : test_cargs + ['-DTEST_EMULATED_FUTEX'],
171   dependencies : deps,
172   install : false,
174 test('1bit-emufutex', exe, env : test_env, suite : ['glib'])
176 exe = executable('gwakeup', 'gwakeuptest.c', '../gwakeup.c',
177   c_args : test_cargs,
178   dependencies : deps,
179   install : false)
180 test('gwakeup', exe, env : test_env, suite : ['glib'])
182 if glib_conf.has('HAVE_EVENTFD')
183   exe = executable('gwakeup-fallback', 'gwakeuptest.c', '../gwakeup.c',
184     c_args : test_cargs + ['-DTEST_EVENTFD_FALLBACK'],
185     dependencies : deps,
186     install : false,
187   )
188   test('gwakeup-fallback', exe, env : test_env, suite : ['glib'])
189 endif
191 # test-spawn-echo helper binary required by the spawn tests above
192 executable('test-spawn-echo', 'test-spawn-echo.c',
193   c_args : test_cargs,
194   dependencies : deps,
195   install : false,
198 # some testing of gtester functionality
199 if not meson.is_cross_build() and host_system != 'windows'
200   xmllint = find_program('xmllint', required: false)
201   if xmllint.found()
202     tmpsample_xml = custom_target('tmpsample.xml',
203       output : 'tmpsample.xml',
204       build_by_default : true, # hack around meson bug, see PR #1335
205       command : [ gtester, '-k', '--quiet', '-o', '@OUTPUT@',
206                   '--test-arg=--gtester-selftest', gtester])
208     test('gtester-xmllint-check', xmllint,
209       args : ['--noout', tmpsample_xml],
210       env : test_env,
211       suite : ['glib'],
212     )
213   endif
214 endif