openpower_pels = {
    'additional_data': {},
    'ascii_string': {},
    'bcd_time': {},
    'data_interface': {},
    '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': {},
    'temporary_file': {
         'sources': [
            '../../extensions/openpower-pels/temporary_file.cpp',
        ],
    },
}

# 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,
    '../common.cpp',
    '../../util.cpp',
    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 ],
            dependencies: [
                gtest_dep,
                gmock_dep,
                libpel_deps,
                peltool_deps,
                openpower_pels.get(t).get('deps', []),
            ],
            include_directories: include_directories(
                '../../',
                '../../gen',
            ),
        )
    )
endforeach
