diff options
author | Simon Glass <sjg@chromium.org> | 2022-03-05 20:18:52 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2022-03-18 19:24:24 -0600 |
commit | 61012538184540b60b35eeb8e5654bfbcd0dbf32 (patch) | |
tree | a58a58e381bde5a6a5333411ef078d2b3b00eb8c | |
parent | 04fce6ff705c455241a180495043c8cd4c4ad81e (diff) | |
download | u-boot-61012538184540b60b35eeb8e5654bfbcd0dbf32.zip u-boot-61012538184540b60b35eeb8e5654bfbcd0dbf32.tar.gz u-boot-61012538184540b60b35eeb8e5654bfbcd0dbf32.tar.bz2 |
dtoc: Make GetArgs() more flexible
At present it is not possible to have arguments which include spaces.
Update the function to only split the args if the property is a single
string. This is a bit inconsistent, but might still be useful.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Suggested-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
-rw-r--r-- | tools/dtoc/fdt_util.py | 8 | ||||
-rw-r--r-- | tools/dtoc/test/dtoc_test_simple.dts | 2 | ||||
-rwxr-xr-x | tools/dtoc/test_fdt.py | 6 |
3 files changed, 13 insertions, 3 deletions
diff --git a/tools/dtoc/fdt_util.py b/tools/dtoc/fdt_util.py index c82e774..5755062 100644 --- a/tools/dtoc/fdt_util.py +++ b/tools/dtoc/fdt_util.py @@ -192,8 +192,12 @@ def GetArgs(node, propname): value = GetStringList(node, propname) else: value = [] - lists = [v.split() for v in value] - args = [x for l in lists for x in l] + if not value: + args = [] + elif len(value) == 1: + args = value[0].split() + else: + args = value return args def GetBool(node, propname, default=False): diff --git a/tools/dtoc/test/dtoc_test_simple.dts b/tools/dtoc/test/dtoc_test_simple.dts index 2d321fb..aef07ef 100644 --- a/tools/dtoc/test/dtoc_test_simple.dts +++ b/tools/dtoc/test/dtoc_test_simple.dts @@ -63,5 +63,7 @@ orig-node { orig = <1 23 4>; args = "-n first", "second", "-p", "123,456", "-x"; + args2 = "a space", "there"; + args3 = "-n first second -p 123,456 -x"; }; }; diff --git a/tools/dtoc/test_fdt.py b/tools/dtoc/test_fdt.py index 28231e5..ea707f2 100755 --- a/tools/dtoc/test_fdt.py +++ b/tools/dtoc/test_fdt.py @@ -659,8 +659,12 @@ class TestFdtUtil(unittest.TestCase): ['multi-word', 'message'], fdt_util.GetArgs(self.node, 'stringarray')) self.assertEqual([], fdt_util.GetArgs(self.node, 'boolval')) - self.assertEqual(['-n', 'first', 'second', '-p', '123,456', '-x'], + self.assertEqual(['-n first', 'second', '-p', '123,456', '-x'], fdt_util.GetArgs(node, 'args')) + self.assertEqual(['a space', 'there'], + fdt_util.GetArgs(node, 'args2')) + self.assertEqual(['-n', 'first', 'second', '-p', '123,456', '-x'], + fdt_util.GetArgs(node, 'args3')) with self.assertRaises(ValueError) as exc: fdt_util.GetArgs(self.node, 'missing') self.assertIn( |