1# Get the gtest/gmock dependencies. 2gtest_dep = dependency('gtest', main: true, disabler: true, required: false) 3gmock_dep = dependency('gmock', disabler: true, required: false) 4if not gtest_dep.found() or not gmock_dep.found() 5 cmake = import('cmake') 6 gtest_proj = cmake.subproject('googletest', 7 required: false) 8 if gtest_proj.found() 9 gtest_dep = declare_dependency( 10 dependencies: [ 11 dependency('threads'), 12 gtest_proj.dependency('gtest'), 13 gtest_proj.dependency('gtest_main'), 14 ] 15 ) 16 gmock_dep = gtest_proj.dependency('gmock') 17 else 18 assert(not get_option('tests').enabled(), 19 'Googletest is required if tests are enabled') 20 endif 21endif 22 23test_arg = [ 24 '-DTEST_TRACE', 25] 26 27# Compile the test dts into a binary for pdbg. 28pdbg_test_dtb = custom_target('build_pdbg_test_dtb', 29 input : files('pdbg_test.dts'), 30 output : 'pdbg_test.dtb', 31 command : [ find_program('dtc'), '-I', 'dts', '-O', 'dtb', 32 '-o', '@OUTPUT@', '@INPUT@' ]) 33 34# end2end code exerciser for experiment and testing 35subdir('end2end') 36 37tests = [ 38 'bin_stream_test', 39 'ffdc_file_test', 40 'resolution_test', 41 'pdbg_dts_test', 42 'test-lpc-timeout', 43 'test-pll-unlock', 44] 45 46analyzer_src = files( 47 '../analyzer/plugins/p10-plugins.cpp', 48 '../analyzer/service_data.cpp', 49 '../analyzer/resolution.cpp', 50) 51 52# We cannot link to `util_lib` because that is built without `-DTEST_TRACE` and 53# any of the util functions that use `trace.hpp` will throw a linker error 54# because we don't have access to phosphor-logging in test ... yet. 55util_src = files( 56 '../util/ffdc_file.cpp', 57 '../util/pdbg.cpp', 58 '../util/temporary_file.cpp', 59) 60 61sim_src = files( 62 'pdbg-sim-only.cpp', 63) 64 65foreach t : tests 66 test(t, 67 executable(t.underscorify(), 68 [ files(t + '.cpp'), pdbg_test_dtb, 69 analyzer_src, util_src, sim_src ], 70 dependencies : [ libhei_dep, libpdbg_dep, gtest_dep ], 71 cpp_args : test_arg, 72 include_directories : incdir), 73 env : [ 'PDBG_DTB=' + pdbg_test_dtb.full_path() ]) 74endforeach 75