[PATCH 02/10] dtoc: add option to disable warnings
Simon Glass
sjg at chromium.org
Thu Jun 4 17:59:20 CEST 2020
Hi Walter,
On Fri, 29 May 2020 at 12:15, Walter Lozano <walter.lozano at 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.lozano at 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
More information about the U-Boot
mailing list