| 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', |
| ) |
| ) |
| |
| test( |
| 'test_nvme_nested_refresh', |
| executable( |
| 'test_nvme_nested_refresh', |
| 'test_nvme_nested_refresh.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', |
| ) |
| ) |
| |
| # 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/NVMeFeatureStore.cpp', |
| '../src/NVMeError.cpp', |
| '../src/NVMeProgress.cpp', |
| '../src/NVMeStorage.cpp', |
| '../src/NVMeDrive.cpp', |
| '../src/NVMeVolume.cpp', |
| '../src/NVMePlugin.cpp', |
| '../src/NVMeMetricStore.cpp', |
| '../src/NVMeFeatureStore.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', |
| ) |
| ) |
| test( |
| 'test_nvme_feature_store', |
| executable( |
| 'test_nvme_feature_store', |
| 'test_nvme_feature_store.cpp', |
| '../src/NVMeFeatureStore.cpp', |
| '../src/NVMeError.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], |
| include_directories: '../src', |
| ) |
| ) |
| |
| |
| test_nvme_recovery_bin = executable('test_nvme_recovery', |
| 'test_nvme_mi_recovery.cpp', |
| 'libnvme_mock.cpp', |
| 'libnvme_mi_mock.cpp', |
| '../src/NVMeController.cpp', |
| '../src/NVMeDevice.cpp', |
| '../src/NVMeDrive.cpp', |
| '../src/NVMeError.cpp', |
| '../src/NVMeMi.cpp', |
| '../src/NVMeMetricStore.cpp', |
| '../src/NVMePlugin.cpp', |
| '../src/NVMeProgress.cpp', |
| '../src/NVMeSensor.cpp', |
| '../src/NVMeStorage.cpp', |
| '../src/NVMeSubsys.cpp', |
| '../src/NVMeVolume.cpp', |
| cpp_args: [ |
| '-DBOOST_ASIO_DISABLE_EPOLL', |
| '-DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT', |
| '-UBOOST_ASIO_NO_DEPRECATED', |
| '-UBOOST_ASIO_DISABLE_THREADS', |
| '-UBOOST_ASIO_HAS_IO_URING', |
| '-DBUILDDIR='+ meson.current_build_dir(), '-DNVME_UNIT_TEST=1'], |
| export_dynamic: true, |
| dependencies: [ |
| default_deps, |
| i2c, |
| libnvme.partial_dependency(compile_args: true, includes: true).as_system(), |
| libnvme_mi.partial_dependency(compile_args: true, includes: true).as_system(), |
| nlohmann_json, |
| nvme_dbus_dep, |
| pdi_dep, |
| plugin_dep, |
| threads, |
| thresholds_dep, |
| ut_deps_list, |
| utils_dep, |
| ], |
| implicit_include_directories: false, |
| include_directories: '../src', |
| ) |
| test('test_nvme_recovery', |
| test_nvme_recovery_bin, |
| # depends: [ mapper ], |
| env:'LD_LIBRARY_PATH=/usr/local/lib', |
| ) |
| endif |
| |
| test( |
| 'test_nvme_refresh', |
| executable( |
| 'test_nvme_refresh', |
| 'test_nvme_refresh.cpp', |
| '../src/NVMeMetricStore.cpp', |
| '../src/Utils.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, nvme_deps], |
| include_directories: '../src', |
| ) |
| ) |
| |