scripts: twister: drop support for space-separated lists
Support for space-separated lists was deprecated a long time ago
a91620f5bb
so it is time to remove
support for them.
Any project that has not migrated can still use
`scripts/utils/twister_to_list.py` to automatically migrate twister
files.
Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
This commit is contained in:
parent
d4a67e321b
commit
714e193340
2 changed files with 16 additions and 35 deletions
|
@ -106,10 +106,8 @@ class TwisterConfigParser:
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def _cast_value(self, value, typestr):
|
def _cast_value(self, value, typestr):
|
||||||
if isinstance(value, str):
|
|
||||||
v = value.strip()
|
|
||||||
if typestr == "str":
|
if typestr == "str":
|
||||||
return v
|
return value.strip()
|
||||||
|
|
||||||
elif typestr == "float":
|
elif typestr == "float":
|
||||||
return float(value)
|
return float(value)
|
||||||
|
@ -124,19 +122,8 @@ class TwisterConfigParser:
|
||||||
if isinstance(value, list):
|
if isinstance(value, list):
|
||||||
return value
|
return value
|
||||||
elif isinstance(value, str):
|
elif isinstance(value, str):
|
||||||
vs = v.split()
|
value = value.strip()
|
||||||
|
return [value] if value else list()
|
||||||
if len(vs) > 1:
|
|
||||||
warnings.warn(
|
|
||||||
"Space-separated lists are deprecated, use YAML lists instead",
|
|
||||||
DeprecationWarning,
|
|
||||||
stacklevel=2
|
|
||||||
)
|
|
||||||
|
|
||||||
if len(typestr) > 4 and typestr[4] == ":":
|
|
||||||
return [self._cast_value(vsi, typestr[5:]) for vsi in vs]
|
|
||||||
else:
|
|
||||||
return vs
|
|
||||||
else:
|
else:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
|
|
||||||
|
@ -144,19 +131,8 @@ class TwisterConfigParser:
|
||||||
if isinstance(value, list):
|
if isinstance(value, list):
|
||||||
return set(value)
|
return set(value)
|
||||||
elif isinstance(value, str):
|
elif isinstance(value, str):
|
||||||
vs = v.split()
|
value = value.strip()
|
||||||
|
return {value} if value else set()
|
||||||
if len(vs) > 1:
|
|
||||||
warnings.warn(
|
|
||||||
"Space-separated lists are deprecated, use YAML lists instead",
|
|
||||||
DeprecationWarning,
|
|
||||||
stacklevel=2
|
|
||||||
)
|
|
||||||
|
|
||||||
if len(typestr) > 3 and typestr[3] == ":":
|
|
||||||
return {self._cast_value(vsi, typestr[4:]) for vsi in vs}
|
|
||||||
else:
|
|
||||||
return set(vs)
|
|
||||||
else:
|
else:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
|
|
||||||
|
@ -201,13 +177,20 @@ class TwisterConfigParser:
|
||||||
elif k not in ("extra_conf_files", "extra_overlay_confs",
|
elif k not in ("extra_conf_files", "extra_overlay_confs",
|
||||||
"extra_dtc_overlay_files"):
|
"extra_dtc_overlay_files"):
|
||||||
if isinstance(d[k], str) and isinstance(v, list):
|
if isinstance(d[k], str) and isinstance(v, list):
|
||||||
d[k] = d[k].split() + v
|
d[k] = [d[k]] + v
|
||||||
elif isinstance(d[k], list) and isinstance(v, str):
|
elif isinstance(d[k], list) and isinstance(v, str):
|
||||||
d[k] += v.split()
|
d[k] += [v]
|
||||||
elif isinstance(d[k], list) and isinstance(v, list):
|
elif isinstance(d[k], list) and isinstance(v, list):
|
||||||
d[k] += v
|
d[k] += v
|
||||||
elif isinstance(d[k], str) and isinstance(v, str):
|
elif isinstance(d[k], str) and isinstance(v, str):
|
||||||
d[k] += " " + v
|
# overwrite if type is string, otherwise merge into a list
|
||||||
|
type = self.testsuite_valid_keys[k]["type"]
|
||||||
|
if type == "str":
|
||||||
|
d[k] = v
|
||||||
|
elif type in ("list", "set"):
|
||||||
|
d[k] = [d[k], v]
|
||||||
|
else:
|
||||||
|
raise ValueError
|
||||||
else:
|
else:
|
||||||
# replace value if not str/list (e.g. integer)
|
# replace value if not str/list (e.g. integer)
|
||||||
d[k] = v
|
d[k] = v
|
||||||
|
|
|
@ -141,12 +141,10 @@ def test_default_values(zephyr_base):
|
||||||
('key: val', 'map', 'key: val', None), # do-nothing cast
|
('key: val', 'map', 'key: val', None), # do-nothing cast
|
||||||
('test', 'int', ValueError, None),
|
('test', 'int', ValueError, None),
|
||||||
('test', 'unknown', ConfigurationError, None),
|
('test', 'unknown', ConfigurationError, None),
|
||||||
('1 2 2 3', 'list', ['1', '2', '2','3'], ('Space-separated lists are deprecated, use YAML lists instead', DeprecationWarning)),
|
|
||||||
('1 2 2 3', 'set', {'1', '2', '3'}, ('Space-separated lists are deprecated, use YAML lists instead', DeprecationWarning)),
|
|
||||||
([ '1', '2', '3' ], 'set', { '1', '2', '2','3' }, None),
|
([ '1', '2', '3' ], 'set', { '1', '2', '2','3' }, None),
|
||||||
],
|
],
|
||||||
ids=['str to str', 'str to float', 'str to int', 'str to bool', 'str to map',
|
ids=['str to str', 'str to float', 'str to int', 'str to bool', 'str to map',
|
||||||
'invalid', 'to unknown', "str to list", "str to set", "list to set"]
|
'invalid', 'to unknown', "list to set"]
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_cast_value(zephyr_base, value, typestr, expected, expected_warning):
|
def test_cast_value(zephyr_base, value, typestr, expected, expected_warning):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue