]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
binman: Move GetEntryModules() to control
authorSimon Glass <sjg@chromium.org>
Wed, 5 Aug 2020 19:27:46 +0000 (13:27 -0600)
committerSimon Glass <sjg@chromium.org>
Sat, 22 Aug 2020 14:53:38 +0000 (08:53 -0600)
When binman is installed its main program is in a different directory
to its modules. This means that __file__ is different and we cannot use
it to obtain the path to etype/ from main.py

To fix this, move the function to the 'control' module, since it is
installed with all the other modules, including the etype/ directory.

Signed-off-by: Simon Glass <sjg@chromium.org>
tools/binman/control.py
tools/binman/ftest.py
tools/binman/main.py

index 343b0a0c35b4f90d64efaf5b654c259bad53dd90..69c36ed658274f8bc6f2788eb5c0420255d29c8b 100644 (file)
@@ -6,6 +6,7 @@
 #
 
 from collections import OrderedDict
+import glob
 import os
 import sys
 from patman import tools
@@ -51,6 +52,18 @@ def _FindBinmanNode(dtb):
             return node
     return None
 
+def GetEntryModules(include_testing=True):
+    """Get a set of entry class implementations
+
+    Returns:
+        Set of paths to entry class filenames
+    """
+    our_path = os.path.dirname(os.path.realpath(__file__))
+    glob_list = glob.glob(os.path.join(our_path, 'etype/*.py'))
+    return set([os.path.splitext(os.path.basename(item))[0]
+                for item in glob_list
+                if include_testing or '_testing' not in item])
+
 def WriteEntryDocs(modules, test_missing=None):
     """Write out documentation for all entries
 
index bf7f59fb8411e1303fc39eab47506e6cf1875ad2..fedcc1ada1bc94ce623654c1b72591da05718c6e 100644 (file)
@@ -24,7 +24,6 @@ from binman import control
 from binman import elf
 from binman import elf_test
 from binman import fmap_util
-from binman import main
 from binman import state
 from dtoc import fdt
 from dtoc import fdt_util
@@ -1440,14 +1439,14 @@ class TestFunctional(unittest.TestCase):
     def testEntryDocs(self):
         """Test for creation of entry documentation"""
         with test_util.capture_sys_output() as (stdout, stderr):
-            control.WriteEntryDocs(main.GetEntryModules())
+            control.WriteEntryDocs(control.GetEntryModules())
         self.assertTrue(len(stdout.getvalue()) > 0)
 
     def testEntryDocsMissing(self):
         """Test handling of missing entry documentation"""
         with self.assertRaises(ValueError) as e:
             with test_util.capture_sys_output() as (stdout, stderr):
-                control.WriteEntryDocs(main.GetEntryModules(), 'u_boot')
+                control.WriteEntryDocs(control.GetEntryModules(), 'u_boot')
         self.assertIn('Documentation is missing for modules: u_boot',
                       str(e.exception))
 
index e543a7d06a7a5957fdbdf4f04bb71e6c07effb81..3e463b0119b83dc19f43c96f5eba1d159f456f7f 100755 (executable)
@@ -10,7 +10,6 @@
 """See README for more information"""
 
 from distutils.sysconfig import get_python_lib
-import glob
 import os
 import site
 import sys
@@ -78,20 +77,9 @@ def RunTests(debug, verbosity, processes, test_preserve_dirs, args, toolpath):
 
     return test_util.ReportResult('binman', test_name, result)
 
-def GetEntryModules(include_testing=True):
-    """Get a set of entry class implementations
-
-    Returns:
-        Set of paths to entry class filenames
-    """
-    glob_list = glob.glob(os.path.join(our_path, 'etype/*.py'))
-    return set([os.path.splitext(os.path.basename(item))[0]
-                for item in glob_list
-                if include_testing or '_testing' not in item])
-
 def RunTestCoverage(toolpath):
     """Run the tests and check that we get 100% coverage"""
-    glob_list = GetEntryModules(False)
+    glob_list = control.GetEntryModules(False)
     all_set = set([os.path.splitext(os.path.basename(item))[0]
                    for item in glob_list if '_testing' not in item])
     extra_args = ''
@@ -127,7 +115,7 @@ def RunBinman(args):
                                 args.toolpath)
 
     elif args.cmd == 'entry-docs':
-        control.WriteEntryDocs(GetEntryModules())
+        control.WriteEntryDocs(control.GetEntryModules())
 
     else:
         try: