blob: c6ebf46c2c2509ea615fe327348b9bc80002b8b6 [file] [log] [blame]
# Copyright (c) 2023 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0
import textwrap
from twister_harness.helpers.shell import ShellMCUbootCommandParsed, ShellMCUbootArea
def test_if_mcuboot_command_output_is_parsed_two_areas() -> None:
cmd_output = textwrap.dedent("""
\x1b[1;32muart:~$ \x1b[mmcuboot
swap type: revert
confirmed: 0
primary area (1):
version: 0.0.2+0
image size: 68240
magic: good
swap type: test
copy done: set
image ok: unset
secondary area (3):
version: 0.0.0+0
image size: 68240
magic: unset
swap type: none
copy done: unset
image ok: unset
\x1b[1;32muart:~$ \x1b[m
""")
mcuboot_parsed = ShellMCUbootCommandParsed.create_from_cmd_output(cmd_output.splitlines())
assert isinstance(mcuboot_parsed, ShellMCUbootCommandParsed)
assert isinstance(mcuboot_parsed.areas[0], ShellMCUbootArea)
assert len(mcuboot_parsed.areas) == 2
assert mcuboot_parsed.areas[0].version == '0.0.2+0'
assert mcuboot_parsed.areas[0].swap_type == 'test'
def test_if_mcuboot_command_output_is_parsed_with_failed_area() -> None:
cmd_output = textwrap.dedent("""
\x1b[1;32muart:~$ \x1b[mmcuboot
swap type: revert
confirmed: 0
primary area (1):
version: 1.1.1+1
image size: 68240
magic: good
swap type: test
copy done: set
image ok: unset
failed to read secondary area (1) header: -5
\x1b[1;32muart:~$ \x1b[m
""")
mcuboot_parsed = ShellMCUbootCommandParsed.create_from_cmd_output(cmd_output.splitlines())
assert len(mcuboot_parsed.areas) == 1
assert mcuboot_parsed.areas[0].version == '1.1.1+1'