| gtest_dep = dependency('gtest', main: true, disabler: true, required: false) |
| gmock_dep = dependency('gmock', disabler: true, required: false) |
| if not gtest_dep.found() or not gmock_dep.found() |
| gtest_proj = import('cmake').subproject('googletest', required: false) |
| if gtest_proj.found() |
| gtest_dep = declare_dependency( |
| dependencies: [ |
| dependency('threads'), |
| gtest_proj.dependency('gtest'), |
| gtest_proj.dependency('gtest_main'), |
| ] |
| ) |
| gmock_dep = gtest_proj.dependency('gmock') |
| else |
| assert( |
| not get_option('tests').enabled(), |
| 'Googletest is required if tests are enabled' |
| ) |
| endif |
| endif |
| |
| ut_deps_list = [ |
| gtest_dep, |
| gmock_dep, |
| ] |
| |
| ut_deps_list += default_deps |
| |
| test( |
| 'test_utils', |
| executable( |
| 'test_utils', |
| 'test_Utils.cpp', |
| '../src/Utils.cpp', |
| dependencies: ut_deps_list, |
| implicit_include_directories: false, |
| include_directories: '../src', |
| ) |
| ) |
| |
| # enable the nvme unit test only for CI docker because the test requires dbus |
| if get_option('nvme').enabled() and run_command('/usr/bin/bash', '-c', '[ ! -f /.dockerenv ]').returncode() == 1 |
| |
| setup = files( |
| 'setup.sh' |
| ) |
| r = run_command('/usr/bin/bash', setup, capture: true, check: false) |
| message('stdout: \n', r.stdout().strip()) |
| message('stderr: \n', r.stderr().strip()) |
| assert(r.returncode()==0) |
| |
| plugin = shared_library('FakePlugin', |
| '../src/NVMeFakePlugin.cpp', |
| cpp_args: ['-UBOOST_ASIO_NO_DEPRECATED', '-UBOOST_ASIO_DISABLE_THREADS', '-UBOOST_ASIO_HAS_IO_URING'], |
| dependencies: nvme_plugin_dep, |
| link_args: ['-Wl,--unresolved-symbols=ignore-in-object-files'], |
| implicit_include_directories: false, |
| include_directories: '../src', |
| ) |
| |
| plugin_dep = declare_dependency(link_with: plugin) |
| |
| cxx = meson.get_compiler('cpp') |
| |
| test( |
| 'test_nvme', |
| executable( |
| 'test_nvme', |
| 'test_nvme_mi.cpp', |
| '../src/NVMeSensor.cpp', |
| '../src/NVMeSubsys.cpp', |
| '../src/NVMeController.cpp', |
| '../src/NVMeError.cpp', |
| '../src/NVMeProgress.cpp', |
| '../src/NVMeStorage.cpp', |
| '../src/NVMeDrive.cpp', |
| '../src/NVMeVolume.cpp', |
| '../src/NVMePlugin.cpp', |
| '../src/NVMeMetricStore.cpp', |
| cpp_args: ['-UBOOST_ASIO_NO_DEPRECATED', '-UBOOST_ASIO_DISABLE_THREADS', '-UBOOST_ASIO_HAS_IO_URING','-DBUILDDIR='+ meson.current_build_dir(), '-DNVME_UNIT_TEST=1'], |
| link_args: cxx.get_id() == 'clang' ? ['-rdynamic'] : ['-export-dynamic'], |
| dependencies: [ut_deps_list, nvme_deps, nlohmann_json, plugin_dep], |
| implicit_include_directories: false, |
| include_directories: '../src', |
| ), |
| env:'LD_LIBRARY_PATH=/usr/local/lib' |
| ) |
| test( |
| 'test_nvme_cache', |
| executable( |
| 'test_nvme_cache', |
| 'test_nvme_cache.cpp', |
| cpp_args: ['-UBOOST_ASIO_NO_DEPRECATED', '-UBOOST_ASIO_DISABLE_THREADS', '-UBOOST_ASIO_HAS_IO_URING','-DBUILDDIR='+ meson.current_build_dir(), '-DNVME_UNIT_TEST=1'], |
| dependencies: [ut_deps_list], |
| include_directories: '../src', |
| ) |
| ) |
| |
| endif |
| |