The AVB test suite runs some avb commands (such as "avb verify") and then parses the console output for success/failure.
It does so by using the string.find() function which returns: * -1 when the subsystring does not exist * 0/a positive number when the substring exists For example, here is the output of: $ ./test/py/test.py --bd sandbox --build -k test_avb_verify -s -v Hit any key to stop autoboot: 0 => => avb init 1 => => avb verify get_partition: no MMC device at slot 1 get_partition: no MMC device at slot 1 avb_slot_verify.c:644: ERROR: boot: Error loading footer. Verification failed, reason: I/O error occurred while trying to load data => PASSED Here, the test is marked as PASSED because assert(-1) will return success. Fix the logic to fail these tests when the expected string is not found. Signed-off-by: Mattijs Korpershoek <[email protected]> --- test/py/tests/test_android/test_avb.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/py/tests/test_android/test_avb.py b/test/py/tests/test_android/test_avb.py index 75abf5d1b1c7..fbab5fe6c471 100644 --- a/test/py/tests/test_android/test_avb.py +++ b/test/py/tests/test_android/test_avb.py @@ -58,7 +58,7 @@ def test_avb_verify(ubman, avb_device_id): response = ubman.run_command('avb init %x' % avb_device_id) assert response == '' response = ubman.run_command('avb verify') - assert response.find(success_str) + assert response.find(success_str) != -1 @pytest.mark.buildconfigspec('cmd_avb') @@ -127,22 +127,22 @@ def test_avb_mmc_read(ubman, avb_device_id): """ response = ubman.run_command('mmc rescan; mmc dev %d 0' % avb_device_id) - assert response.find('is current device') + assert response.find('is current device') != -1 response = ubman.run_command('mmc read 0x%x 0x100 0x1' % temp_addr) - assert response.find('read: OK') + assert response.find('read: OK') != -1 response = ubman.run_command('avb init %x' % avb_device_id) assert response == '' response = ubman.run_command('avb read_part xloader 0 100 0x%x' % temp_addr2) - assert response.find('Read 512 bytes') + assert response.find('Read 512 bytes') != -1 # Now lets compare two buffers response = ubman.run_command('cmp 0x%x 0x%x 40' % (temp_addr, temp_addr2)) - assert response.find('64 word') + assert response.find('64 word') != -1 @pytest.mark.buildconfigspec('cmd_avb') -- 2.56.0
