diff mbox series

[rdma-core,12/14] tests: Fix test locating process

Message ID 20190819065827.26921-13-noaos@mellanox.com (mailing list archive)
State Not Applicable
Headers show
Series rdma-core tests infrastructure | expand

Commit Message

Noa Osherovich Aug. 19, 2019, 6:58 a.m. UTC
Add a module-specific load_tests method in __init__.py. It currently
locates all existing tests under its directory (files should start
with 'test_') and runs them without any parameters. In order to run a
test with a specific set of parameters, user can add the relevant
lines in __init__.py (example provided in the file).

Signed-off-by: Noa Osherovich <noaos@mellanox.com>
---
 run_tests.py      | 20 +++++++-------------
 tests/__init__.py | 17 +++++++++++++++++
 2 files changed, 24 insertions(+), 13 deletions(-)
diff mbox series

Patch

diff --git a/run_tests.py b/run_tests.py
index dbee92d942bd..4f6b212dab9f 100644
--- a/run_tests.py
+++ b/run_tests.py
@@ -1,22 +1,16 @@ 
 # SPDX-License-Identifier: (GPL-2.0 OR Linux-OpenIB)
 # Copyright (c) 2018, Mellanox Technologies. All rights reserved.  See COPYING file
-import unittest,os,os.path,fnmatch
-import tests
 
+import unittest
 
+
+# Run from /usr/share/doc/rdma-core-<version>
 def test_all():
-    # FIXME: This implementation is for older Python versions, will
-    # be replaced with discover()
-    return test_suite
+    module = __import__('tests')
+    loader = unittest.TestLoader()
+    suite = loader.loadTestsFromModule(module)
+    return suite
 
-module = __import__("tests")
-fns = [os.path.splitext(I)[0] for I in fnmatch.filter(os.listdir(module.__path__[0]),"*.py")]
-fns.remove("__init__")
-for I in fns:
-    __import__("tests." + I)
-test_suite = unittest.TestSuite(unittest.defaultTestLoader.loadTestsFromNames(fns,module))
 
 if __name__ == '__main__':
     unittest.main(defaultTest="test_all")
-
-
diff --git a/tests/__init__.py b/tests/__init__.py
index e69de29bb2d1..7a2efdfb6e6b 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -0,0 +1,17 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR Linux-OpenIB)
+# Copyright (c) 2019 Mellanox Technologies, Inc . All rights reserved. See COPYING file
+
+import unittest
+
+
+def load_tests(loader, standard_tests, pattern):
+    loader = unittest.TestLoader()
+    suite = loader.discover('tests')
+    return suite
+#   To run only some test cases / parametrized tests:
+#   1. Add RDMATestCase to the imports:
+#    from tests.base import RDMATestCase
+#   2. Replace the current TestSuite with a customized one and add tests to it
+#      (parameters are optional)
+#    suite = unittest.TestSuite()
+#    suite.addTest(RDMATestCase.parametrize(YourTestCase, dev_name='rocep0s8f0', ...))