mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-10-31 08:22:16 +01:00 
			
		
		
		
	Meson: install gobject tests
This commit is contained in:
		| @@ -1,47 +1,3 @@ | ||||
| gobject_tests = [ | ||||
|   'qdata', | ||||
|   'boxed', | ||||
|   'enums', | ||||
|   'param', | ||||
|   'threadtests', | ||||
|   'dynamictests', | ||||
|   'binding', | ||||
|   'properties', | ||||
|   'reference', | ||||
|   'value', | ||||
|   'type', | ||||
|   'private', | ||||
|   'closure', | ||||
|   'object', | ||||
|   'signal-handler', | ||||
|   'ifaceproperties', | ||||
| ] | ||||
|  | ||||
| # FIXME: put common bits of test environment() in one location | ||||
| # 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 = environment() | ||||
| test_env.set('G_TEST_SRCDIR', meson.current_source_dir()) | ||||
| test_env.set('G_TEST_BUILDDIR', meson.current_build_dir()) | ||||
| test_env.set('G_DEBUG', 'gc-friendly') | ||||
| test_env.set('MALLOC_CHECK_', '2') | ||||
| test_env.set('MALLOC_PERTURB_', '@0@'.format(random_number % 256)) | ||||
|  | ||||
| foreach test_name : gobject_tests | ||||
|   deps = [libm, thread_dep, libglib_dep, libgobject_dep] | ||||
|   test_src = '@0@.c'.format(test_name) | ||||
|   # private is an existing or reserved target it seems | ||||
|   if test_name == 'private' | ||||
|     test_name = 'gobject-private' | ||||
|   endif | ||||
|   exe = executable(test_name, test_src, | ||||
|       c_args : ['-DG_LOG_DOMAIN="GLib-GObject"'], | ||||
|       dependencies : deps, | ||||
|   ) | ||||
|   test(test_name, exe, env : test_env, suite : ['gobject']) | ||||
| endforeach | ||||
|  | ||||
| marshalers_h = custom_target('marshalers_h', | ||||
|   output : 'marshalers.h', | ||||
|   input : 'marshalers.list', | ||||
| @@ -70,12 +26,71 @@ marshalers_c = custom_target('marshalers_c', | ||||
|   ], | ||||
| ) | ||||
|  | ||||
| exe = executable('signals', | ||||
|     'signals.c', marshalers_h, marshalers_c, | ||||
|     c_args : ['-DG_LOG_DOMAIN="GLib-GObject"'], | ||||
|     dependencies : deps, | ||||
| gobject_tests = { | ||||
|   'qdata' : {}, | ||||
|   'boxed' : {}, | ||||
|   'enums' : {}, | ||||
|   'param' : {}, | ||||
|   'threadtests' : {}, | ||||
|   'dynamictests' : {}, | ||||
|   'binding' : {}, | ||||
|   'properties' : {}, | ||||
|   'reference' : {}, | ||||
|   'value' : {}, | ||||
|   'type' : {}, | ||||
|   'gobject-private' : { | ||||
|     'source' : 'private.c', | ||||
|   }, | ||||
|   'closure' : {}, | ||||
|   'object' : {}, | ||||
|   'signal-handler' : {}, | ||||
|   'ifaceproperties' : {}, | ||||
|   'signals' : { | ||||
|     'source' : ['signals.c', marshalers_h, marshalers_c], | ||||
|   }, | ||||
| } | ||||
|  | ||||
| # FIXME: put common bits of test environment() in one location | ||||
| # 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 = environment() | ||||
| test_env.set('G_TEST_SRCDIR', meson.current_source_dir()) | ||||
| test_env.set('G_TEST_BUILDDIR', meson.current_build_dir()) | ||||
| test_env.set('G_DEBUG', 'gc-friendly') | ||||
| test_env.set('MALLOC_CHECK_', '2') | ||||
| test_env.set('MALLOC_PERTURB_', '@0@'.format(random_number % 256)) | ||||
|  | ||||
| test_deps = [libm, thread_dep, libglib_dep, libgobject_dep] | ||||
| test_cargs = ['-DG_LOG_DOMAIN="GLib-GObject"'] | ||||
|  | ||||
| foreach test_name, extra_args : gobject_tests | ||||
|   source = extra_args.get('source', test_name + '.c') | ||||
|   install = installed_tests_enabled and extra_args.get('install', true) | ||||
|  | ||||
|   if install | ||||
|     test_conf = configuration_data() | ||||
|     test_conf.set('installed_tests_dir', installed_tests_execdir) | ||||
|     test_conf.set('program', test_name) | ||||
|     configure_file( | ||||
|       input: installed_tests_template, | ||||
|       output: test_name + '.test', | ||||
|       install_dir: installed_tests_metadir, | ||||
|       configuration: test_conf | ||||
|     ) | ||||
| test('signals', exe, env : test_env, suite : ['gobject']) | ||||
|   endif | ||||
|  | ||||
|   exe = executable(test_name, source, | ||||
|     c_args : test_cargs + extra_args.get('c_args', []), | ||||
|     dependencies : test_deps + extra_args.get('dependencies', []), | ||||
|     install_dir: installed_tests_execdir, | ||||
|     install: install, | ||||
|   ) | ||||
|  | ||||
|   suite = ['gobject'] + extra_args.get('suite', []) | ||||
|   timeout = suite.contains('slow') ? 120 : 30 | ||||
|   test(test_name, exe, env : test_env, timeout : timeout, suite : suite) | ||||
| endforeach | ||||
|  | ||||
| test( | ||||
|   'mkenums.py', | ||||
|   | ||||
		Reference in New Issue
	
	Block a user