Hi Walter, On Fri, 29 May 2020 at 12:15, Walter Lozano <walter.loz...@collabora.com> wrote: > > As dtoc now performs checks for valid driver names, when running dtoc > tests several warnings arise as these tests don't use valid driver > names. > > This patch adds an option to disable those warning, which is only > intended for running tests. > > Signed-off-by: Walter Lozano <walter.loz...@collabora.com> > --- > tools/dtoc/dtb_platdata.py | 11 +++++--- > tools/dtoc/test_dtoc.py | 54 +++++++++++++++++++------------------- > 2 files changed, 34 insertions(+), 31 deletions(-) > > diff --git a/tools/dtoc/dtb_platdata.py b/tools/dtoc/dtb_platdata.py > index 23cfda2f88..0a54188348 100644 > --- a/tools/dtoc/dtb_platdata.py > +++ b/tools/dtoc/dtb_platdata.py > @@ -141,17 +141,19 @@ class DtbPlatdata(object): > _valid_nodes: A list of Node object with compatible strings > _include_disabled: true to include nodes marked status = "disabled" > _outfile: The current output file (sys.stdout or a real file) > + _warning_disabled: true to disable warnings about driver names not > found > _lines: Stashed list of output lines for outputting in the future > _aliases: Dict that hold aliases for compatible strings > _drivers: List of valid driver names found in drivers/ > _driver_aliases: Dict that holds aliases for driver names > """ > - def __init__(self, dtb_fname, include_disabled): > + def __init__(self, dtb_fname, include_disabled, warning_disable): > self._fdt = None > self._dtb_fname = dtb_fname > self._valid_nodes = None > self._include_disabled = include_disabled > self._outfile = None > + self._warning_disable = warning_disable > self._lines = [] > self._aliases = {} > self._drivers = [] > @@ -177,7 +179,8 @@ class DtbPlatdata(object): > compat_c_old = compat_c > compat_c = self._driver_aliases.get(compat_c) > if not compat_c: > - print('WARNING: the driver %s was not found in the driver > list' % (compat_c_old)) > + if not self._warning_disable: # pragma: no cover
Need coverage for this. > + print('WARNING: the driver %s was not found in the > driver list' % (compat_c_old)) > compat_c = compat_c_old > else: # pragma: no cover > aliases_c = [compat_c_old] + aliases_c > @@ -623,7 +626,7 @@ class DtbPlatdata(object): > nodes_to_output.remove(node) > > > -def run_steps(args, dtb_file, include_disabled, output): > +def run_steps(args, dtb_file, include_disabled, output, warning_disable = > False): no spaces around = > """Run all the steps of the dtoc tool > > Args: > @@ -635,7 +638,7 @@ def run_steps(args, dtb_file, include_disabled, output): > if not args: > raise ValueError('Please specify a command: struct, platdata') > > - plat = DtbPlatdata(dtb_file, include_disabled) > + plat = DtbPlatdata(dtb_file, include_disabled, warning_disable) > plat.scan_drivers() > plat.scan_dtb() > plat.scan_tree() > diff --git a/tools/dtoc/test_dtoc.py b/tools/dtoc/test_dtoc.py > index 8498e8303c..a9b605cac8 100755 > --- a/tools/dtoc/test_dtoc.py > +++ b/tools/dtoc/test_dtoc.py > @@ -154,12 +154,12 @@ class TestDtoc(unittest.TestCase): > """Test output from a device tree file with no nodes""" > dtb_file = get_dtb_file('dtoc_test_empty.dts') > output = tools.GetOutputFilename('output') > - dtb_platdata.run_steps(['struct'], dtb_file, False, output) > + dtb_platdata.run_steps(['struct'], dtb_file, False, output, True) > with open(output) as infile: > lines = infile.read().splitlines() > self.assertEqual(HEADER.splitlines(), lines) > > - dtb_platdata.run_steps(['platdata'], dtb_file, False, output) > + dtb_platdata.run_steps(['platdata'], dtb_file, False, output, True) Can you create run_test which calls run_steps with that set that to True, to avoid adding the param everywhere in this file? Regards, Simon