Currently, rdma-core provides no test suite for users/developers. This means that for users, there is no way to sanity-check a fresh installation, and for developers, no comfortable API to write tests to be shipped along new features. This series is changing the way we use pyverbs for tests and provides an easy-to-use classes and methods to make tests development fast. A testing.md file is available under the Documentation directory, explaining the design and usage in details. This PR also unifies the output of the current API tests, so when executed in verbose mode, the output will be the same for all tests. Maxim Chicherin (7): tests: BaseResources Class tests: RDMATestCase tests: RCResources and UDResources classes tests: ODP requires decorator tests: Add traffic helper methods tests: Add ODP RC test tests: Add ODP UD test Noa Osherovich (7): pyverbs/tests: Rename base class pyverbs: Move tests to a stand-alone directory build: Add pyverbs-based test to the build tests: TrafficResources class tests: Fix test locating process Documentation: Add background for rdma-core tests tests: Unify API tests' output CMakeLists.txt | 11 + Documentation/testing.md | 126 ++++++++ buildlib/pyverbs_functions.cmake | 7 + debian/python3-pyverbs.install | 2 + pyverbs/CMakeLists.txt | 17 - pyverbs/run_tests.py | 22 -- pyverbs/tests/__init__.py | 0 pyverbs/tests/base.py | 23 -- redhat/rdma-core.spec | 2 + run_tests.py | 16 + suse/rdma-core.spec | 2 + tests/CMakeLists.txt | 15 + tests/__init__.py | 17 + tests/base.py | 293 ++++++++++++++++++ pyverbs/tests/addr.py => tests/test_addr.py | 4 +- pyverbs/tests/cq.py => tests/test_cq.py | 10 +- .../tests/device.py => tests/test_device.py | 12 +- pyverbs/tests/mr.py => tests/test_mr.py | 46 ++- tests/test_odp.py | 41 +++ pyverbs/tests/pd.py => tests/test_pd.py | 4 +- pyverbs/tests/qp.py => tests/test_qp.py | 6 +- {pyverbs/tests => tests}/utils.py | 199 ++++++++++++ 22 files changed, 782 insertions(+), 93 deletions(-) create mode 100644 Documentation/testing.md delete mode 100644 pyverbs/run_tests.py delete mode 100644 pyverbs/tests/__init__.py delete mode 100644 pyverbs/tests/base.py create mode 100644 run_tests.py create mode 100644 tests/CMakeLists.txt create mode 100644 tests/__init__.py create mode 100644 tests/base.py rename pyverbs/tests/addr.py => tests/test_addr.py (97%) rename pyverbs/tests/cq.py => tests/test_cq.py (97%) rename pyverbs/tests/device.py => tests/test_device.py (97%) rename pyverbs/tests/mr.py => tests/test_mr.py (90%) create mode 100644 tests/test_odp.py rename pyverbs/tests/pd.py => tests/test_pd.py (95%) rename pyverbs/tests/qp.py => tests/test_qp.py (98%) rename {pyverbs/tests => tests}/utils.py (52%) -- 2.21.0