Skip to content

Commit 86cf2ff

Browse files
committed
Map firmware images that don't specify hardware-compatibility to default
This allows for a simple setup where one has only one type of hardware.
1 parent 8d283c7 commit 86cf2ff

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

goosebit/updates/swdesc.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ def parse_descriptor(swdesc: libconf.AttrDict[Any, Any | None]):
3535
for key2 in element:
3636
_append_compatibility(key, element[key2], compatibility)
3737

38+
if len(compatibility) == 0:
39+
# if nothing is specified, assume compatibility with default / default boards
40+
compatibility.append({"hw_model": "default", "hw_revision": "default"})
41+
3842
swdesc_attrs["compatibility"] = compatibility
3943
except KeyError as e:
4044
logging.warning(f"Parsing swu descriptor failed, error={e}")

tests/updates/test_swdesc.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,23 @@
55
from goosebit.updates.swdesc import parse_descriptor, parse_file
66

77

8+
def test_parse_descriptor_no_compatibility_defined():
9+
desc = AttrDict(
10+
{
11+
"software": {
12+
"version": "1.0",
13+
"description": "Software update for XXXXX Project",
14+
}
15+
}
16+
)
17+
18+
swdesc_attrs = parse_descriptor(desc)
19+
assert swdesc_attrs["version"] == "1.0.0"
20+
assert swdesc_attrs["compatibility"] == [
21+
{"hw_model": "default", "hw_revision": "default"},
22+
]
23+
24+
825
def test_parse_descriptor_simple():
926
# simplified example from https://sbabic.github.io/swupdate/sw-description.html#introduction
1027
desc = AttrDict(

0 commit comments

Comments
 (0)