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