blob: 45c5749df7b6f15b534b5152b59cdaa07fef65c4 [file] [log] [blame]
# Get the gtest/gmock dependencies.
gtest_dep = dependency('gtest', main: true, disabler: true, required: false)
gmock_dep = dependency('gmock', disabler: true, required: false)
if not gtest_dep.found() or not gmock_dep.found()
cmake = import('cmake')
gtest_proj = cmake.subproject('googletest',
required: false)
if gtest_proj.found()
gtest_dep = declare_dependency(
dependencies: [
dependency('threads'),
gtest_proj.dependency('gtest'),
gtest_proj.dependency('gtest_main'),
]
)
gmock_dep = gtest_proj.dependency('gmock')
else
assert(not get_option('tests').enabled(),
'Googletest is required if tests are enabled')
endif
endif
test_arg = [
'-DTEST_TRACE',
]
# Compile the test dts into a binary for pdbg.
pdbg_test_dtb = custom_target('build_pdbg_test_dtb',
input : files('pdbg_test.dts'),
output : 'pdbg_test.dtb',
command : [ find_program('dtc'), '-I', 'dts', '-O', 'dtb',
'-o', '@OUTPUT@', '@INPUT@' ])
# end2end code exerciser for experiment and testing
subdir('end2end')
tests = [
'bin_stream_test',
'ffdc_file_test',
'resolution_test',
'test-pll-unlock',
]
analyzer_src = files(
'../analyzer/plugins/p10-plugins.cpp',
'../analyzer/service_data.cpp',
'../analyzer/resolution.cpp',
)
# We cannot link to `util_lib` because that is built without `-DTEST_TRACE` and
# any of the util functions that use `trace.hpp` will throw a linker error
# because we don't have access to phosphor-logging in test ... yet.
util_src = files(
'../util/ffdc_file.cpp',
'../util/pdbg.cpp',
'../util/temporary_file.cpp',
)
foreach t : tests
test(t,
executable(t.underscorify(),
[ files(t + '.cpp'), pdbg_test_dtb,
analyzer_src, util_src ],
dependencies : [ libhei_dep, libpdbg_dep, gtest_dep ],
cpp_args : test_arg,
include_directories : incdir),
env : [ 'PDBG_DTB=' + pdbg_test_dtb.full_path() ])
endforeach