From 5193d3f9494c977ac4694a1fc6fb0570ce6e92a7 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Wed, 10 Jun 2020 01:09:33 +0200 Subject: tests: Add infrastructure to run Python unit tests - Add UHD_ADD_PYTEST() CMake macro - Add CMake code to tests/CMakeLists.txt to auto-run all registered Python unit tests - Add a token unit test (it replicates parts of ranges_test.cpp) The way Python-based unit tests are implemented in UHD is that they can import uhd, and then operate on the module as usual. Writing unit tests in Python instead of C++ can have multiple advantages: - If they test PyBind-wrapped C++ code, they can test both the binding and the underlying C++ code at once - Writing unit tests in Python may be more concise --- host/tests/pyranges_test.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 host/tests/pyranges_test.py (limited to 'host/tests/pyranges_test.py') diff --git a/host/tests/pyranges_test.py b/host/tests/pyranges_test.py new file mode 100644 index 000000000..17137e9f2 --- /dev/null +++ b/host/tests/pyranges_test.py @@ -0,0 +1,20 @@ +# +# Copyright 2020 Ettus Research, a National Instruments Brand +# +# SPDX-License-Identifier: GPL-3.0-or-later +# +""" +Unit test for uhd.types.*Range +""" + +import unittest +import uhd + +class RangesTest(unittest.TestCase): + """ Test Python-wrapped ranges classes """ + def test_meta_range(self): + """ Test MetaRange.clip() """ + my_range = uhd.types.MetaRange(1.0, 10.0, 0.5) + self.assertEqual(my_range.clip(5.0), 5.0) + self.assertEqual(my_range.clip(11.0), 10.0) + self.assertEqual(my_range.clip(5.1, True), 5.0) -- cgit v1.2.3