mirror of
https://github.com/u-boot/u-boot.git
synced 2024-12-15 07:43:33 +08:00
binman: Move GetEntryModules() to control
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>
This commit is contained in:
parent
702e57e113
commit
87d43329ef
@ -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
|
||||
|
||||
|
@ -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))
|
||||
|
||||
|
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user