xref: /openbmc/pldm/test/meson.build (revision ada39c0f)
1if get_option('oe-sdk').enabled()
2  # Setup OE SYSROOT
3  OECORE_TARGET_SYSROOT = run_command('sh', '-c', 'echo $OECORE_TARGET_SYSROOT').stdout().strip()
4  if OECORE_TARGET_SYSROOT == ''
5      error('Unable to get $OECORE_TARGET_SYSROOT, check your environment.')
6  endif
7  message('OE_SYSROOT: ' + OECORE_TARGET_SYSROOT)
8  rpath = ':'.join([OECORE_TARGET_SYSROOT + '/lib', OECORE_TARGET_SYSROOT + '/usr/lib'])
9  ld_so = run_command('sh', '-c', 'find ' + OECORE_TARGET_SYSROOT + '/lib/ld-*.so | sort -r -n | head -n1').stdout().strip()
10  dynamic_linker = ['-Wl,-dynamic-linker,' + ld_so]
11else
12  dynamic_linker = []
13endif
14
15gtest = dependency('gtest', main: true, disabler: true, required: false)
16gmock = dependency('gmock', disabler: true, required: false)
17if not gtest.found() or not gmock.found()
18    gtest_proj = import('cmake').subproject('googletest', required: false)
19    if gtest_proj.found()
20        gtest = declare_dependency(
21            dependencies: [
22                dependency('threads'),
23                gtest_proj.dependency('gtest'),
24                gtest_proj.dependency('gtest_main'),
25            ]
26        )
27        gmock = gtest_proj.dependency('gmock')
28    else
29        assert(
30            not get_option('tests').enabled(),
31            'Googletest is required if tests are enabled'
32        )
33    endif
34endif
35
36pldmd = declare_dependency(
37          sources: [
38            '../pldmd/instance_id.cpp',
39            '../pldmd/dbus_impl_requester.cpp',
40            '../host-bmc/host_pdr_handler.cpp',
41            '../host-bmc/dbus_to_host_effecters.cpp'])
42
43tests = [
44  'libpldmresponder_base_test',
45  'libpldmresponder_bios_test',
46  'libpldmresponder_bios_attribute_test',
47  'libpldmresponder_bios_string_attribute_test',
48  'libpldmresponder_bios_config_test',
49  'libpldmresponder_bios_integer_attribute_test',
50  'libpldmresponder_bios_enum_attribute_test',
51  'libpldmresponder_pdr_effecter_test',
52  'libpldmresponder_pdr_sensor_test',
53  'libpldmresponder_bios_table_test',
54  'libpldmresponder_platform_test',
55  'pldmd_instanceid_test',
56  'pldmd_registration_test',
57  'pldm_utils_test',
58  'libpldmresponder_fru_test',
59  'libpldmresponder_dbus_to_host_effecter_test',
60]
61
62if get_option('oem-ibm').enabled()
63  tests += [
64    '../oem/ibm/test/libpldmresponder_fileio_test',
65    '../oem/ibm/test/libpldmresponder_oem_platform_test'
66  ]
67endif
68
69foreach t : tests
70  test(t, executable(t.underscorify(), t + '.cpp',
71                     implicit_include_directories: false,
72                     link_args: dynamic_linker,
73                     build_rpath: get_option('oe-sdk').enabled() ? rpath : '',
74                     dependencies: [
75                         libpldm_dep,
76                         libpldmresponder,
77                         libpldmutils,
78                         gtest,
79                         gmock,
80                         nlohmann_json,
81                         pldmd,
82                         phosphor_dbus_interfaces,
83                         sdeventplus,
84                         sdbusplus]),
85       workdir: meson.current_source_dir())
86endforeach
87