aboutsummaryrefslogtreecommitdiff
path: root/test/py/meson.build
diff options
context:
space:
mode:
authorDaniel P. Berrangé <berrange@redhat.com>2022-04-21 16:48:16 +0100
committerJohn Levon <levon@movementarian.org>2022-05-09 23:28:10 +0100
commit5b69b60c197695579fd48abaa81c39b9984f1cab (patch)
treecd4717b8a875b2810af93d72e21b34248c62e761 /test/py/meson.build
parent18fb66bcec7b88301f949e586dbd773b8e3ee067 (diff)
downloadlibvfio-user-5b69b60c197695579fd48abaa81c39b9984f1cab.zip
libvfio-user-5b69b60c197695579fd48abaa81c39b9984f1cab.tar.gz
libvfio-user-5b69b60c197695579fd48abaa81c39b9984f1cab.tar.bz2
build: introduce Meson build file rules
The Meson build system used by many other virt projects (QEMU, libvirt and others) is easier to understand & maintain rules for than cmake, guiding towards best practice. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Diffstat (limited to 'test/py/meson.build')
-rw-r--r--test/py/meson.build71
1 files changed, 71 insertions, 0 deletions
diff --git a/test/py/meson.build b/test/py/meson.build
new file mode 100644
index 0000000..e8266e7
--- /dev/null
+++ b/test/py/meson.build
@@ -0,0 +1,71 @@
+
+if valgrind.found()
+ valgrind_pyunit_wrapper = valgrind_common_wrapper + [
+ '--suppressions=' + ( meson.current_source_dir() / 'valgrind.supp' ),
+ '--show-leak-kinds=definite',
+ '--errors-for-leak-kinds=definite',
+ ]
+ valgrind_pyunit_env = ['PYTHONMALLOC=malloc']
+
+ if meson.version().version_compare('<0.57.0')
+ add_test_setup('pyvalgrind',
+ env: valgrind_pyunit_env,
+ exe_wrapper: valgrind_pyunit_wrapper,
+ timeout_multiplier: 10)
+ else
+ add_test_setup('pyvalgrind',
+ exclude_suites: ['functional', 'unit', 'style'],
+ env: valgrind_pyunit_env,
+ exe_wrapper: valgrind_pyunit_wrapper,
+ timeout_multiplier: 10)
+ endif
+endif
+
+python_tests_common = [
+ 'libvfio_user.py',
+]
+
+python_tests = [
+ 'test_destroy.py',
+ 'test_device_get_info.py',
+ 'test_device_get_irq_info.py',
+ 'test_device_get_region_info.py',
+ 'test_device_get_region_info_zero_size.py',
+ 'test_device_get_region_io_fds.py',
+ 'test_device_set_irqs.py',
+ 'test_dirty_pages.py',
+ 'test_dma_map.py',
+ 'test_dma_unmap.py',
+ 'test_irq_trigger.py',
+ 'test_map_unmap_sg.py',
+ 'test_migration.py',
+ 'test_negotiate.py',
+ 'test_pci_caps.py',
+ 'test_pci_ext_caps.py',
+ 'test_quiesce.py',
+ 'test_request_errors.py',
+ 'test_setup_region.py',
+ 'test_vfu_create_ctx.py',
+ 'test_vfu_realize_ctx.py',
+]
+
+python_files = python_tests_common + python_tests
+
+if pytest.found() and opt_sanitizers == 'none'
+ foreach testname: python_tests
+ test(testname,
+ pytest,
+ suite: 'pyunit',
+ env: environment({'LIBVFIO_SO_DIR': libvfio_so_dir}),
+ args: [files(testname)])
+ endforeach
+endif
+
+if flake8.found()
+ flake8_ignore = 'F405,F403,E128,E131,E127'
+ test('flake8',
+ flake8,
+ suite: 'style',
+ args: ['--extend-ignore', flake8_ignore,
+ files(python_files)])
+endif