py3_mod = import('python3')
py3 = py3_mod.find_python()

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',
  command : [
    python, glib_genmarshal,
    '--prefix=test',
    '--valist-marshallers',
    '--output=@OUTPUT@',
    '--quiet',
    '--header',
    '@INPUT@',
  ],
)
marshalers_c = custom_target('marshalers_c',
  output : 'marshalers.c',
  input : 'marshalers.list',
  command : [
    python, glib_genmarshal,
    '--prefix=test',
    '--valist-marshallers',
    '--include-header=marshalers.h',
    '--output=@OUTPUT@',
    '--quiet',
    '--body',
    '@INPUT@',
  ],
)

exe = executable('signals',
    'signals.c', marshalers_h, marshalers_c,
    c_args : ['-DG_LOG_DOMAIN="GLib-GObject"'],
    dependencies : deps,
)
test('signals', exe, env : test_env, suite : ['gobject'])

test(
  'mkenums.py',
  py3,
  args: files('mkenums.py'),
  env: test_env,
  suite: ['gobject'],
)