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");
