[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