changeset 39138:61d46a751bfa

module: fix test_module calculations
author Dmitry Selyutin <ghostmansd@gmail.com>
date Sat, 07 Jul 2018 17:58:43 +0300
parents 6289200390d5
children 301a67f71165
files pygnulib/module.py
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/pygnulib/module.py	Thu Jul 05 22:32:35 2018 +0300
+++ b/pygnulib/module.py	Sat Jul 07 17:58:43 2018 +0300
@@ -913,7 +913,7 @@
         lookup = lambda module, lookup=lookup: module if isinstance(module, BaseModule) else lookup(module)
 
         def _applicability(module):
-            return module.applicability in ({"main", "all"}, {"main"})[config.tests]
+            return (module.applicability == "main")
 
         def _dummy(modules):
             if "dummy" in config.avoids:
@@ -947,7 +947,7 @@
         # The result of this transitive closure is a set of main modules.
         conditionals = config.conditionals
         modules = explicit_modules = {lookup(module) for module in config.modules}
-        base_closure = TransitiveClosure(lookup, modules, mask, gnumake, conditionals)
+        base_closure = TransitiveClosure(lookup, modules, mask, gnumake, conditionals, False)
         modules = map(lambda module: lookup(module.name + "-tests"), set(base_closure))
         modules = set(filter(lambda module: module is not None, modules))
         full_closure = TransitiveClosure(lookup, (explicit_modules | modules), mask, gnumake, conditionals, True)
@@ -956,6 +956,13 @@
         main_modules = set(base_closure)
         final_modules = set(full_closure) if config.tests else main_modules
         test_modules = (final_modules - set(filter(_applicability, sorted(main_modules))))
+        nontrivial_tests = False
+        for module in test_modules:
+            if module.applicability != "all":
+                nontrivial_tests = True
+                break
+        if not nontrivial_tests:
+            test_modules = set()
         libtests = _libtests(test_modules)
         if _dummy(main_modules):
             main_modules.add(DummyModule())