build: meson support for openpower-pel extensions
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I4b45f71a3de4966fe3649480d4333806f201f405
diff --git a/test/meson.build b/test/meson.build
index 19c81f2..1538b7f 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -19,6 +19,10 @@
endif
endif
+if not get_option('openpower-pel-extension').disabled()
+ subdir('openpower-pels')
+endif
+
tests = [
'elog_quiesce_test',
'elog_update_ts_test',
@@ -45,12 +49,9 @@
'-DTESTCASE_' + t.underscorify(),
],
dependencies: [
- cereal_dep,
gmock_dep,
gtest_dep,
- pdi_dep,
- sdbusplus_dep,
- sdeventplus_dep,
+ log_manager_deps,
],
include_directories: include_directories('..', '../gen'),
)
diff --git a/test/openpower-pels/meson.build b/test/openpower-pels/meson.build
new file mode 100644
index 0000000..3527bed
--- /dev/null
+++ b/test/openpower-pels/meson.build
@@ -0,0 +1,109 @@
+openpower_pels = {
+ 'additional_data': {},
+ 'ascii_string': {},
+ 'bcd_time': {},
+ 'device_callouts': {},
+ 'event_logger': {},
+ 'extended_user_data': {},
+ 'extended_user_header': {},
+ 'failing_mtms': {},
+ 'fru_identity': {},
+ 'generic_section': {},
+ 'host_notifier': {
+ 'sources': [
+ '../../extensions/openpower-pels/host_notifier.cpp',
+ '../../extensions/openpower-pels/repository.cpp',
+ ],
+ },
+ 'json_utils': {},
+ 'log_id': {},
+ 'mru': {},
+ 'mtms': {},
+ 'pce_identity': {},
+ 'pel_manager': {
+ 'sources': [
+ '../../elog_entry.cpp',
+ '../../elog_serialize.cpp',
+ '../../extensions.cpp',
+ '../../log_manager.cpp',
+ elog_lookup_gen,
+ elog_process_gen,
+ generated_sources,
+ log_manager_ext_sources,
+ ],
+ 'deps': [ cereal_dep ],
+ },
+ 'pel_rules': {},
+ 'pel': {},
+ 'pel_values': {},
+ 'private_header': {},
+ 'real_pel': {},
+ 'registry': {},
+ 'repository': {
+ 'sources': [
+ '../../extensions/openpower-pels/repository.cpp',
+ ],
+ },
+ 'section_header': {},
+ 'service_indicators': {},
+ 'severity': {},
+ 'src': {},
+ 'src_callout': {},
+ 'src_callouts': {},
+ 'stream': {},
+ 'user_data': {},
+ 'user_header': {},
+}
+
+# Build a common shared library for all openpower tests of all the widely
+# used sources under test.
+openpower_test_lib = static_library(
+ 'openpower_test_lib',
+ 'pel_utils.cpp',
+ 'paths.cpp',
+ libpel_sources,
+ peltool_sources,
+ '../../util.cpp',
+ cpp_args: [
+ '-DTESTCASE=openpower_test_lib',
+ ],
+ include_directories: include_directories(
+ '../../',
+ '../../gen',
+ ),
+ dependencies: [
+ libpel_deps,
+ peltool_deps,
+ ],
+)
+
+foreach t : openpower_pels.keys()
+ test(
+ 'test_openpower_pels_' + t.underscorify(),
+ executable(
+ 'test-openpower-pels-' + t.underscorify(),
+ t + '_test.cpp',
+ openpower_pels.get(t).get('sources', []),
+ link_with: [
+ openpower_test_lib,
+ libphosphor_logging,
+ ],
+ link_args: [ '-lpython' + python_ver ],
+ cpp_args: [
+ '-DTESTCASE=' + t.underscorify(),
+ '-DTESTCASE_' + t.underscorify(),
+ ],
+ dependencies: [
+ gtest_dep,
+ gmock_dep,
+ libpel_deps,
+ peltool_deps,
+ openpower_pels.get(t).get('deps', []),
+ ],
+ include_directories: include_directories(
+ '../../',
+ '../../gen',
+ ),
+ )
+ )
+endforeach
diff --git a/test/openpower-pels/pel_test.cpp b/test/openpower-pels/pel_test.cpp
index 3631b50..49b8e96 100644
--- a/test/openpower-pels/pel_test.cpp
+++ b/test/openpower-pels/pel_test.cpp
@@ -420,9 +420,13 @@
std::string jsonString{d.begin(), d.end()};
auto json = nlohmann::json::parse(jsonString);
- // Ensure the 'Process Name' entry contains 'pel_test'
+ // Ensure the 'Process Name' entry contains the name of this test
+ // executable.
auto name = json["Process Name"].get<std::string>();
- EXPECT_NE(name.find("pel_test"), std::string::npos);
+ auto found = (name.find("pel_test") != std::string::npos) ||
+ (name.find("test-openpower-pels-pel") != std::string::npos);
+ EXPECT_TRUE(found);
+ // @TODO(stwcx): remove 'pel_test' when removing autotools.
auto version = json["BMC Version ID"].get<std::string>();
EXPECT_EQ(version, "ABCD1234");