|
|
|
project('D Features', 'd', default_options : ['debug=false'])
|
|
|
|
|
|
|
|
# ONLY FOR BACKWARDS COMPATIBILITY.
|
|
|
|
# DO NOT DO THIS IN NEW CODE!
|
|
|
|
# USE include_directories() INSTEAD OF BUILDING
|
|
|
|
# STRINGS TO PATHS MANUALLY!
|
|
|
|
data_dir = join_paths(meson.current_source_dir(), 'data')
|
|
|
|
|
|
|
|
test_src = ['app.d', 'extra.d']
|
|
|
|
|
|
|
|
e_plain_bcompat = executable('dapp_menu_bcompat',
|
|
|
|
test_src,
|
|
|
|
d_import_dirs: [data_dir]
|
|
|
|
)
|
|
|
|
test('dapp_menu_t_fail_bcompat', e_plain_bcompat, should_fail: true)
|
|
|
|
test('dapp_menu_t_bcompat', e_plain_bcompat, args: ['menu'])
|
|
|
|
|
|
|
|
# directory for data
|
|
|
|
# This is the correct way to do this.
|
|
|
|
data_dir = include_directories('data')
|
|
|
|
|
|
|
|
e_plain = executable('dapp_menu',
|
|
|
|
test_src,
|
|
|
|
d_import_dirs: [data_dir]
|
|
|
|
)
|
|
|
|
test('dapp_menu_t_fail', e_plain, should_fail: true)
|
|
|
|
test('dapp_menu_t', e_plain, args: ['menu'])
|
|
|
|
|
|
|
|
|
|
|
|
# test feature versions and string imports
|
|
|
|
e_versions = executable('dapp_versions',
|
|
|
|
test_src,
|
|
|
|
d_import_dirs: [data_dir],
|
|
|
|
d_module_versions: ['No_Menu', 'With_People']
|
|
|
|
)
|
|
|
|
test('dapp_versions_t_fail', e_versions, args: ['menu'], should_fail: true)
|
|
|
|
test('dapp_versions_t', e_versions, args: ['people'])
|
|
|
|
|
|
|
|
# test everything and unittests
|
|
|
|
e_test = executable('dapp_test',
|
|
|
|
test_src,
|
|
|
|
d_import_dirs: [data_dir],
|
|
|
|
d_module_versions: ['No_Menu', 'With_People'],
|
|
|
|
d_unittest: true
|
|
|
|
)
|
|
|
|
test('dapp_test', e_test)
|
|
|
|
|
|
|
|
# test version level
|
|
|
|
e_version_int = executable('dapp_version_int',
|
|
|
|
test_src,
|
|
|
|
d_import_dirs: [data_dir],
|
|
|
|
d_module_versions: ['With_VersionInteger', 3],
|
|
|
|
)
|
|
|
|
test('dapp_version_int_t', e_version_int, args: ['debug'])
|
|
|
|
|
|
|
|
# test version level failure
|
|
|
|
e_version_int_fail = executable('dapp_version_int_fail',
|
|
|
|
test_src,
|
|
|
|
d_import_dirs: [data_dir],
|
|
|
|
d_module_versions: ['With_VersionInteger', 2],
|
|
|
|
)
|
|
|
|
test('dapp_version_int_t_fail', e_version_int_fail, args: ['debug'], should_fail: true)
|
|
|
|
|
|
|
|
# test debug conditions: disabled
|
|
|
|
e_no_debug = executable('dapp_no_debug',
|
|
|
|
test_src,
|
|
|
|
d_import_dirs: [data_dir],
|
|
|
|
d_module_versions: ['With_Debug'],
|
|
|
|
)
|
|
|
|
test('dapp_no_debug_t_fail', e_no_debug, args: ['debug'], should_fail: true)
|
|
|
|
|
|
|
|
# test debug conditions: enabled
|
|
|
|
e_debug = executable('dapp_debug',
|
|
|
|
test_src,
|
|
|
|
d_import_dirs: [data_dir],
|
|
|
|
d_module_versions: ['With_Debug'],
|
|
|
|
d_debug: 1,
|
|
|
|
)
|
|
|
|
test('dapp_debug_t', e_debug, args: ['debug'])
|
|
|
|
|
|
|
|
# test debug conditions: integer
|
|
|
|
e_debug_int = executable('dapp_debug_int',
|
|
|
|
test_src,
|
|
|
|
d_import_dirs: [data_dir],
|
|
|
|
d_module_versions: ['With_DebugInteger'],
|
|
|
|
d_debug: 3,
|
|
|
|
)
|
|
|
|
test('dapp_debug_int_t', e_debug_int, args: ['debug'])
|
|
|
|
|
|
|
|
# test debug conditions: identifier
|
|
|
|
e_debug_ident = executable('dapp_debug_ident',
|
|
|
|
test_src,
|
|
|
|
d_import_dirs: [data_dir],
|
|
|
|
d_module_versions: ['With_DebugIdentifier'],
|
|
|
|
d_debug: 'DebugIdentifier',
|
|
|
|
)
|
|
|
|
test('dapp_debug_ident_t', e_debug_ident, args: ['debug'])
|
|
|
|
|
|
|
|
# test with all debug conditions at once, and with redundant values
|
|
|
|
e_debug_all = executable('dapp_debug_all',
|
|
|
|
test_src,
|
|
|
|
d_import_dirs: [data_dir],
|
|
|
|
d_module_versions: ['With_DebugAll'],
|
|
|
|
d_debug: ['4', 'DebugIdentifier', 2, 'DebugIdentifierUnused'],
|
|
|
|
)
|
|
|
|
test('dapp_debug_all_t', e_debug_all, args: ['debug'])
|