]> code.ossystems Code Review - openembedded-core.git/commitdiff
scripts/oe-selftest: add command line option to list test classes
authorAlexandru DAMIAN <alexandru.damian@intel.com>
Wed, 4 Feb 2015 14:13:57 +0000 (14:13 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 7 Feb 2015 18:52:45 +0000 (18:52 +0000)
While trying to discover what tests are available, I felt the
need to be able to list all individual tests so I can run specific
tests.

This patch adds the "--list-classes" command line option that
lists the unit test classes and methods available.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
scripts/oe-selftest

index 74c998bc4394180eb11611d72fd5db1b12ce9217..a04e9fc96cc07eee6f13f6f57800b6a8328e251c 100755 (executable)
@@ -66,6 +66,7 @@ def get_args_parser():
     group.add_argument('--run-tests', required=False, action='store', nargs='*', dest="run_tests", default=None, help='Select what tests to run (modules, classes or test methods). Format should be: <module>.<class>.<test_method>')
     group.add_argument('--run-all-tests', required=False, action="store_true", dest="run_all_tests", default=False, help='Run all (unhidden) tests')
     group.add_argument('--list-modules', required=False, action="store_true", dest="list_modules", default=False, help='List all available test modules.')
+    group.add_argument('--list-classes', required=False, action="store_true", dest="list_allclasses", default=False, help='List all available test classes.')
     return parser
 
 
@@ -138,6 +139,9 @@ def main():
     parser = get_args_parser()
     args = parser.parse_args()
 
+    if args.list_allclasses:
+        args.list_modules = True
+
     if args.list_modules:
         log.info('Listing all available test modules:')
         testslist = get_tests(include_hidden=True)
@@ -147,6 +151,22 @@ def main():
             if module.startswith('_'):
                 info = ' (hidden)'
             print module + info
+            if args.list_allclasses:
+                try:
+                    import importlib
+                    modlib = importlib.import_module(test)
+                    for v in vars(modlib):
+                        t = vars(modlib)[v]
+                        if isinstance(t, type(oeSelfTest)) and issubclass(t, oeSelfTest) and t!=oeSelfTest:
+                            print " --", v
+                            for method in dir(t):
+                                if method.startswith("test_"):
+                                    print " --  --", method
+
+                except (AttributeError, ImportError) as e:
+                    print e
+                    pass
+
 
     if args.run_tests or args.run_all_tests:
         if not preflight_check():