Re: [PATCH 02/10] dtoc: add option to disable warnings

2020-06-08 Thread Walter Lozano

Hi Simon,

On 4/6/20 12:59, Simon Glass wrote:

Hi Walter,

On Fri, 29 May 2020 at 12:15, Walter Lozano  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 
---
  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.

No problem!



+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 =

Sure.

  """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?

Sure, no problem. Thanks!


Regards,

Walter



Re: [PATCH 02/10] dtoc: add option to disable warnings

2020-06-04 Thread Simon Glass
Hi Walter,

On Fri, 29 May 2020 at 12:15, Walter Lozano  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 
> ---
>  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


[PATCH 02/10] dtoc: add option to disable warnings

2020-05-29 Thread Walter Lozano
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 
---
 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
+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):
 """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)
 with open(output) as infile:
 lines = infile.read().splitlines()
 self.assertEqual(C_HEADER.splitlines() + [''], lines)
@@ -168,7 +168,7 @@ class TestDtoc(unittest.TestCase):
 """Test output from some simple nodes with various types of data"""
 dtb_file = get_dtb_file('dtoc_test_simple.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:
 data = infile.read()
 self._CheckStrings(HEADER + '''
@@ -193,7 +193,7 @@ struct dtd_sandbox_spl_test_2 {
 };
 ''', data)
 
-dtb_platdata.run_steps(['platdata'], dtb_file, False, output)
+dtb_platdata.run_steps(['platdata'], dtb_file, False, output, True)
 with open(output) as infile:
 data = infile.read()
 self._CheckStrings(C_HEADER + '''
@@ -272,7 +272,7 @@ U_BOOT_DEVICE(pmic_at_9) = {
 """Test output from a node containing a phandle reference"""
 dtb_file = get_dtb_file('dtoc_test_phandle.dts')
 output = tools.GetOutputFilename('output')
-dtb_platdata.run_steps(['struct'], dtb_file, False,