# 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 ################################################################################ # NOTE: 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. test_arg = [ '-DTEST_TRACE', package_args, ] # 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@' ]) pdbg_env = 'PDBG_DTB=' + pdbg_test_dtb.full_path() # end2end code exerciser for experiment and testing subdir('end2end') ################################################################################ tc = 'test-bin-stream' src = [ files( tc + '.cpp', ), ] dep = [ gtest_dep ] var = [ ] exe = executable(tc.underscorify(), src, dependencies: dep, cpp_args: test_arg, include_directories: incdir) test(tc, exe, env: var) ################################################################################ tc = 'test-ffdc-file' src = [ files( tc + '.cpp', '../util/ffdc_file.cpp', '../util/temporary_file.cpp', ), ] dep = [ gtest_dep ] var = [ ] exe = executable(tc.underscorify(), src, dependencies: dep, cpp_args: test_arg, include_directories: incdir) test(tc, exe, env: var) ################################################################################ tc = 'test-lpc-timeout' src = [ files( tc + '.cpp', '../analyzer/plugins/p10-plugins.cpp', '../analyzer/service_data.cpp', '../util/pdbg.cpp', 'dbus-sim-only.cpp', 'pdbg-sim-only.cpp', ), pdbg_test_dtb, ] dep = [ libhei_dep, libpdbg_dep, gtest_dep ] var = [ pdbg_env ] exe = executable(tc.underscorify(), src, dependencies: dep, cpp_args: test_arg, include_directories: incdir) test(tc, exe, env: var) ################################################################################ tc = 'test-pdbg-dts' src = [ files( tc + '.cpp', '../util/pdbg.cpp', 'dbus-sim-only.cpp', 'pdbg-sim-only.cpp', ), pdbg_test_dtb, ] dep = [ libhei_dep, libpdbg_dep, gtest_dep ] var = [ pdbg_env ] exe = executable(tc.underscorify(), src, dependencies: dep, cpp_args: test_arg, include_directories: incdir) test(tc, exe, env: var) ################################################################################ tc = 'test-pll-unlock' src = [ files( tc + '.cpp', '../analyzer/plugins/p10-plugins.cpp', '../analyzer/ras-data/ras-data-parser.cpp', '../analyzer/resolution.cpp', '../analyzer/service_data.cpp', '../util/data_file.cpp', '../util/pdbg.cpp', 'dbus-sim-only.cpp', 'pdbg-sim-only.cpp', ), pdbg_test_dtb, ] dep = [ libhei_dep, libpdbg_dep, gtest_dep ] var = [ pdbg_env ] exe = executable(tc.underscorify(), src, dependencies: dep, cpp_args: test_arg, include_directories: incdir) test(tc, exe, env: var) ################################################################################ tc = 'test-resolution' src = [ files( tc + '.cpp', '../analyzer/resolution.cpp', '../analyzer/service_data.cpp', '../util/pdbg.cpp', 'dbus-sim-only.cpp', 'pdbg-sim-only.cpp', ), pdbg_test_dtb, ] dep = [ libhei_dep, libpdbg_dep, gtest_dep ] var = [ pdbg_env ] exe = executable(tc.underscorify(), src, dependencies: dep, cpp_args: test_arg, include_directories: incdir) test(tc, exe, env: var) ################################################################################ tc = 'test-tod-step-check-fault' src = [ files( tc + '.cpp', '../analyzer/plugins/p10-tod-plugins.cpp', '../analyzer/service_data.cpp', '../util/pdbg.cpp', 'dbus-sim-only.cpp', 'pdbg-sim-only.cpp', ), pdbg_test_dtb, ] dep = [ libhei_dep, libpdbg_dep, gtest_dep ] var = [ pdbg_env ] exe = executable(tc.underscorify(), src, dependencies: dep, cpp_args: test_arg, include_directories: incdir) test(tc, exe, env: var) ################################################################################ tc = 'test-ti-handler' src = [ files( tc + '.cpp', ), ] dep = [ gtest_dep ] var = [ ] exe = executable(tc.underscorify(), src, dependencies: dep, link_with : hwdiags_libs, cpp_args: test_arg, include_directories: incdir) test(tc, exe, env: var) ################################################################################ tc = 'test-attention' src = [ files( tc + '.cpp', ), pdbg_test_dtb, ] dep = [ gtest_dep ] var = [ pdbg_env ] exe = executable(tc.underscorify(), src, dependencies: dep, link_with : hwdiags_libs, cpp_args: test_arg, include_directories: incdir) test(tc, exe, env: var) ################################################################################ tc = 'test-util-data-file' src = [ files( tc + '.cpp', ), ] dep = [ gtest_dep ] var = [ ] exe = executable(tc.underscorify(), src, dependencies: dep, link_with : hwdiags_libs, cpp_args: test_arg, include_directories: incdir) test(tc, exe, env: var)