xref: /openbmc/phosphor-led-manager/test/meson.build (revision 42a4acb88a7cd54b9e267544d0a15b06cf95cec7)
1687fe078SGeorge Liugtest_dep = dependency('gtest', main: true, disabler: true, required: false)
2687fe078SGeorge Liugmock_dep = dependency('gmock', disabler: true, required: false)
3687fe078SGeorge Liuif not gtest_dep.found() or not gmock_dep.found()
4687fe078SGeorge Liu    gtest_proj = import('cmake').subproject('googletest', required: false)
5687fe078SGeorge Liu    if gtest_proj.found()
6687fe078SGeorge Liu        gtest_dep = declare_dependency(
7687fe078SGeorge Liu            dependencies: [
8687fe078SGeorge Liu                dependency('threads'),
9687fe078SGeorge Liu                gtest_proj.dependency('gtest'),
10687fe078SGeorge Liu                gtest_proj.dependency('gtest_main'),
11*42a4acb8SPatrick Williams            ],
12687fe078SGeorge Liu        )
13687fe078SGeorge Liu        gmock_dep = gtest_proj.dependency('gmock')
14687fe078SGeorge Liu    else
15687fe078SGeorge Liu        assert(
1695b0db91SPatrick Williams            not get_option('tests').allowed(),
17*42a4acb8SPatrick Williams            'Googletest is required if tests are enabled',
18687fe078SGeorge Liu        )
19687fe078SGeorge Liu    endif
20687fe078SGeorge Liuendif
21687fe078SGeorge Liu
22*42a4acb8SPatrick Williamstest_yamls = ['test-empty-group', 'test-group-priority', 'test-led-priority']
23eb1f46a8SAlexander Hansen
244b062010SGeorge Liutest_sources = [
25953315d2SPatrick Williams    '../manager/manager.cpp',
26638d1487SAlexander Hansen    '../manager/config-validator.cpp',
27eb1f46a8SAlexander Hansen    '../utils.cpp',
284b062010SGeorge Liu]
294b062010SGeorge Liu
30eb1f46a8SAlexander Hansenforeach yaml : test_yamls
31eb1f46a8SAlexander Hansen    gen_hpp = custom_target(
32eb1f46a8SAlexander Hansen        yaml + '.hpp',
33eb1f46a8SAlexander Hansen        command: [
34eb1f46a8SAlexander Hansen            prog_python,
35eb1f46a8SAlexander Hansen            meson.project_source_root() + '/scripts/parse_led.py',
36*42a4acb8SPatrick Williams            '--filename',
37*42a4acb8SPatrick Williams            meson.project_source_root() + '/test/config/' + yaml + '.yaml',
38*42a4acb8SPatrick Williams            '-o',
39*42a4acb8SPatrick Williams            meson.current_build_dir(),
40*42a4acb8SPatrick Williams            '--output-filename',
41*42a4acb8SPatrick Williams            yaml + '.hpp',
42eb1f46a8SAlexander Hansen        ],
43*42a4acb8SPatrick Williams        output: yaml + '.hpp',
44*42a4acb8SPatrick Williams    )
45eb1f46a8SAlexander Hansen
46eb1f46a8SAlexander Hansen    test_sources += [gen_hpp]
47eb1f46a8SAlexander Hansenendforeach
48eb1f46a8SAlexander Hansen
494b062010SGeorge Liutests = [
504b062010SGeorge Liu    'utest.cpp',
51fb00eebcSGeorge Liu    'utest-led-json.cpp',
52ee2ecbfaSAlexander Hansen    'utest-group-priority.cpp',
53eb1f46a8SAlexander Hansen    'utest-led-yaml-group-priority.cpp',
54eb1f46a8SAlexander Hansen    'utest-led-yaml-led-priority.cpp',
55f2669fabSJason M. Bills    'utest-led-yaml-empty-group.cpp',
56*42a4acb8SPatrick Williams    'utest-config-validator.cpp',
574b062010SGeorge Liu]
5895b0db91SPatrick Williamsif get_option('persistent-led-asserted').allowed()
59*42a4acb8SPatrick Williams    test_sources += ['../manager/serialize.cpp']
60*42a4acb8SPatrick Williams    tests += ['utest-serialize.cpp']
6154671853SGeorge Liuendif
624b062010SGeorge Liu
634b062010SGeorge Liuforeach t : tests
64*42a4acb8SPatrick Williams    test(
65*42a4acb8SPatrick Williams        t,
66*42a4acb8SPatrick Williams        executable(
67*42a4acb8SPatrick Williams            t.underscorify(),
68*42a4acb8SPatrick Williams            t,
694b062010SGeorge Liu            test_sources,
70953315d2SPatrick Williams            include_directories: ['..', '../manager'],
71*42a4acb8SPatrick Williams            dependencies: [gtest_dep, gmock_dep, deps],
72*42a4acb8SPatrick Williams        ),
73*42a4acb8SPatrick Williams        workdir: meson.current_source_dir(),
74*42a4acb8SPatrick Williams    )
754b062010SGeorge Liuendforeach
76