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 23################################################################################ 24 25# NOTE: We cannot link to `util_lib` because that is built without 26# `-DTEST_TRACE` and any of the util functions that use `trace.hpp` will 27# throw a linker error because we don't have access to phosphor-logging 28# in test ... yet. 29 30test_arg = [ 31 '-DTEST_TRACE', 32 package_args, 33] 34 35# Compile the test dts into a binary for pdbg. 36pdbg_test_dtb = custom_target('build_pdbg_test_dtb', 37 input : files('pdbg-test.dts'), 38 output : 'pdbg-test.dtb', 39 command : [ find_program('dtc'), '-I', 'dts', '-O', 'dtb', 40 '-o', '@OUTPUT@', '@INPUT@' ]) 41 42pdbg_env = 'PDBG_DTB=' + pdbg_test_dtb.full_path() 43 44# end2end code exerciser for experiment and testing 45subdir('end2end') 46 47################################################################################ 48 49tc = 'test-bin-stream' 50 51src = [ 52 files( 53 tc + '.cpp', 54 ), 55] 56 57dep = [ gtest_dep ] 58 59var = [ ] 60 61exe = executable(tc.underscorify(), src, dependencies: dep, 62 cpp_args: test_arg, include_directories: incdir) 63 64test(tc, exe, env: var) 65 66################################################################################ 67 68tc = 'test-ffdc-file' 69 70src = [ 71 files( 72 tc + '.cpp', 73 '../util/ffdc_file.cpp', 74 '../util/temporary_file.cpp', 75 ), 76] 77 78dep = [ gtest_dep ] 79 80var = [ ] 81 82exe = executable(tc.underscorify(), src, dependencies: dep, 83 cpp_args: test_arg, include_directories: incdir) 84 85test(tc, exe, env: var) 86 87################################################################################ 88 89tc = 'test-lpc-timeout' 90 91src = [ 92 files( 93 tc + '.cpp', 94 '../analyzer/plugins/p10-plugins.cpp', 95 '../analyzer/service_data.cpp', 96 '../util/pdbg.cpp', 97 'dbus-sim-only.cpp', 98 'pdbg-sim-only.cpp', 99 ), 100 pdbg_test_dtb, 101] 102 103dep = [ libhei_dep, libpdbg_dep, gtest_dep ] 104 105var = [ pdbg_env ] 106 107exe = executable(tc.underscorify(), src, dependencies: dep, 108 cpp_args: test_arg, include_directories: incdir) 109 110test(tc, exe, env: var) 111 112################################################################################ 113 114tc = 'test-pdbg-dts' 115 116src = [ 117 files( 118 tc + '.cpp', 119 '../util/pdbg.cpp', 120 'dbus-sim-only.cpp', 121 'pdbg-sim-only.cpp', 122 ), 123 pdbg_test_dtb, 124] 125 126dep = [ libhei_dep, libpdbg_dep, gtest_dep ] 127 128var = [ pdbg_env ] 129 130exe = executable(tc.underscorify(), src, dependencies: dep, 131 cpp_args: test_arg, include_directories: incdir) 132 133test(tc, exe, env: var) 134 135################################################################################ 136 137tc = 'test-pll-unlock' 138 139src = [ 140 files( 141 tc + '.cpp', 142 '../analyzer/plugins/p10-plugins.cpp', 143 '../analyzer/ras-data/ras-data-parser.cpp', 144 '../analyzer/resolution.cpp', 145 '../analyzer/service_data.cpp', 146 '../util/data_file.cpp', 147 '../util/pdbg.cpp', 148 'dbus-sim-only.cpp', 149 'pdbg-sim-only.cpp', 150 ), 151 pdbg_test_dtb, 152] 153 154dep = [ libhei_dep, libpdbg_dep, gtest_dep ] 155 156var = [ pdbg_env ] 157 158exe = executable(tc.underscorify(), src, dependencies: dep, 159 cpp_args: test_arg, include_directories: incdir) 160 161test(tc, exe, env: var) 162 163################################################################################ 164 165tc = 'test-resolution' 166 167src = [ 168 files( 169 tc + '.cpp', 170 '../analyzer/resolution.cpp', 171 '../analyzer/service_data.cpp', 172 '../util/pdbg.cpp', 173 'dbus-sim-only.cpp', 174 'pdbg-sim-only.cpp', 175 ), 176 pdbg_test_dtb, 177] 178 179dep = [ libhei_dep, libpdbg_dep, gtest_dep ] 180 181var = [ pdbg_env ] 182 183exe = executable(tc.underscorify(), src, dependencies: dep, 184 cpp_args: test_arg, include_directories: incdir) 185 186test(tc, exe, env: var) 187 188################################################################################ 189 190tc = 'test-tod-step-check-fault' 191 192src = [ 193 files( 194 tc + '.cpp', 195 '../analyzer/plugins/p10-tod-plugins.cpp', 196 '../analyzer/service_data.cpp', 197 '../util/pdbg.cpp', 198 'dbus-sim-only.cpp', 199 'pdbg-sim-only.cpp', 200 ), 201 pdbg_test_dtb, 202] 203 204dep = [ libhei_dep, libpdbg_dep, gtest_dep ] 205 206var = [ pdbg_env ] 207 208exe = executable(tc.underscorify(), src, dependencies: dep, 209 cpp_args: test_arg, include_directories: incdir) 210 211test(tc, exe, env: var) 212 213################################################################################ 214 215tc = 'test-ti-handler' 216 217src = [ 218 files( 219 tc + '.cpp', 220 ), 221] 222 223dep = [ gtest_dep ] 224 225var = [ ] 226 227exe = executable(tc.underscorify(), src, dependencies: dep, 228 link_with : hwdiags_libs, 229 cpp_args: test_arg, include_directories: incdir) 230 231test(tc, exe, env: var) 232 233################################################################################ 234 235tc = 'test-attention' 236 237src = [ 238 files( 239 tc + '.cpp', 240 ), 241 pdbg_test_dtb, 242] 243 244dep = [ gtest_dep ] 245 246var = [ pdbg_env ] 247 248exe = executable(tc.underscorify(), src, dependencies: dep, 249 link_with : hwdiags_libs, 250 cpp_args: test_arg, include_directories: incdir) 251 252test(tc, exe, env: var) 253