diff mbox series

[v1,3/4] test/py: introduce test for ab_dump command

Message ID 20240725194716.32232-4-ddrokosov@salutedevices.com
State Changes Requested
Delegated to: Mattijs Korpershoek
Headers show
Series android_ab: fix slot_suffix issue and introduce ab_dump command | expand

Commit Message

Dmitry Rokosov July 25, 2024, 7:47 p.m. UTC
The ab_dump command allows you to display ABC data directly on the
U-Boot console. During an A/B test execution, this test verifies the
accuracy of each field within the ABC data.

Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
---
 test/py/tests/test_android/test_ab.py | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

Comments

Simon Glass July 28, 2024, 7:36 p.m. UTC | #1
Hi Dmitry,

On Thu, 25 Jul 2024 at 14:55, Dmitry Rokosov
<ddrokosov@salutedevices.com> wrote:
>
> The ab_dump command allows you to display ABC data directly on the
> U-Boot console. During an A/B test execution, this test verifies the
> accuracy of each field within the ABC data.
>
> Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
> ---
>  test/py/tests/test_android/test_ab.py | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)

This looks good but please use lower-case hex.

Regards,
Simon
Dmitry Rokosov July 29, 2024, 2:39 p.m. UTC | #2
Hello Simon,

On Sun, Jul 28, 2024 at 01:36:05PM -0600, Simon Glass wrote:
> Hi Dmitry,
> 
> On Thu, 25 Jul 2024 at 14:55, Dmitry Rokosov
> <ddrokosov@salutedevices.com> wrote:
> >
> > The ab_dump command allows you to display ABC data directly on the
> > U-Boot console. During an A/B test execution, this test verifies the
> > accuracy of each field within the ABC data.
> >
> > Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
> > ---
> >  test/py/tests/test_android/test_ab.py | 23 +++++++++++++++++++++++
> >  1 file changed, 23 insertions(+)
> 
> This looks good but please use lower-case hex.

Thank you for the quick review!

I will change it to lower-case hex in the next version.
Mattijs Korpershoek July 30, 2024, 8:21 a.m. UTC | #3
Hi Dmitry,

Thank you for the patch.

On lun., juil. 29, 2024 at 17:39, Dmitry Rokosov <ddrokosov@salutedevices.com> wrote:

> Hello Simon,
>
> On Sun, Jul 28, 2024 at 01:36:05PM -0600, Simon Glass wrote:
>> Hi Dmitry,
>> 
>> On Thu, 25 Jul 2024 at 14:55, Dmitry Rokosov
>> <ddrokosov@salutedevices.com> wrote:
>> >
>> > The ab_dump command allows you to display ABC data directly on the
>> > U-Boot console. During an A/B test execution, this test verifies the
>> > accuracy of each field within the ABC data.
>> >
>> > Signed-off-by: Dmitry Rokosov <ddrokosov@salutedevices.com>
>> > ---
>> >  test/py/tests/test_android/test_ab.py | 23 +++++++++++++++++++++++
>> >  1 file changed, 23 insertions(+)
>> 
>> This looks good but please use lower-case hex.
>
> Thank you for the quick review!
>
> I will change it to lower-case hex in the next version.

With Simon's suggestion addressed:

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>

>
> -- 
> Thank you,
> Dmitry
diff mbox series

Patch

diff --git a/test/py/tests/test_android/test_ab.py b/test/py/tests/test_android/test_ab.py
index c79cb07fda35..8aa42fe67c33 100644
--- a/test/py/tests/test_android/test_ab.py
+++ b/test/py/tests/test_android/test_ab.py
@@ -54,6 +54,27 @@  def ab_disk_image(u_boot_console):
         di = ABTestDiskImage(u_boot_console)
     return di
 
+def ab_dump(u_boot_console, slot_num, crc):
+    output = u_boot_console.run_command('ab_dump host 0#misc')
+    header, slot0, slot1 = output.split('\r\r\n\r\r\n')
+    slots = [slot0, slot1]
+    slot_suffixes = ['_a', '_b']
+
+    header = dict(map(lambda x: map(str.strip, x.split(':')), header.split('\r\r\n')))
+    assert header['Bootloader Control'] == '[misc]'
+    assert header['Active Slot'] == slot_suffixes[slot_num]
+    assert header['Magic Number'] == '0x42414342'
+    assert header['Version'] == '1'
+    assert header['Number of Slots'] == '2'
+    assert header['Recovery Tries Remaining'] == '0'
+    assert header['CRC'] == '{} (Valid)'.format(crc)
+
+    slot = dict(map(lambda x: map(str.strip, x.split(':')), slots[slot_num].split('\r\r\n\t- ')[1:]))
+    assert slot['Priority'] == '15'
+    assert slot['Tries Remaining'] == '6'
+    assert slot['Successful Boot'] == '0'
+    assert slot['Verity Corrupted'] == '0'
+
 @pytest.mark.boardspec('sandbox')
 @pytest.mark.buildconfigspec('android_ab')
 @pytest.mark.buildconfigspec('cmd_ab_select')
@@ -68,8 +89,10 @@  def test_ab(ab_disk_image, u_boot_console):
     assert 'Attempting slot a, tries remaining 7' in output
     output = u_boot_console.run_command('printenv slot_name')
     assert 'slot_name=a' in output
+    ab_dump(u_boot_console, 0, '0xD438D1B9')
 
     output = u_boot_console.run_command('ab_select slot_name host 0:1')
     assert 'Attempting slot b, tries remaining 7' in output
     output = u_boot_console.run_command('printenv slot_name')
     assert 'slot_name=b' in output
+    ab_dump(u_boot_console, 1, '0x011EC016')