diff options
author | Simon Glass <sjg@chromium.org> | 2020-03-18 11:44:00 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2020-04-01 07:45:09 -0600 |
commit | 1b090032029b35080a5a87c9f1047882d894ab37 (patch) | |
tree | f047b5e46882b592d33f90b8fe745ea07a214090 /test | |
parent | c021971e132234667eb80bc29bdd4ad6c8d04458 (diff) | |
download | u-boot-1b090032029b35080a5a87c9f1047882d894ab37.tar.gz |
test: vboot: Parameterise the test
This test is actually made up of five separate tests. Split them out so
that they appear as separate tests.
Unfortunately this restarts U-Boot multiple times which adds about a
second to the already-long vboot test, about 8 seconds total on my
machine. We could add a special 'teardown' test afterwards but if the
tests are executed out of order that would not work.
Changing test_vboot into a class causes it not to be discovered and makes
it different from all other tests.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'test')
-rw-r--r-- | test/py/tests/test_vboot.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/test/py/tests/test_vboot.py b/test/py/tests/test_vboot.py index 22c79ef313..b1badaad73 100644 --- a/test/py/tests/test_vboot.py +++ b/test/py/tests/test_vboot.py @@ -30,13 +30,22 @@ import struct import u_boot_utils as util import vboot_forge +TESTDATA = [ + ['sha1', '', False], + ['sha1', '-pss', False], + ['sha256', '', False], + ['sha256', '-pss', False], + ['sha256', '-pss', True], +] + @pytest.mark.boardspec('sandbox') @pytest.mark.buildconfigspec('fit_signature') @pytest.mark.requiredtool('dtc') @pytest.mark.requiredtool('fdtget') @pytest.mark.requiredtool('fdtput') @pytest.mark.requiredtool('openssl') -def test_vboot(u_boot_console): +@pytest.mark.parametrize("sha_algo,padding,required", TESTDATA) +def test_vboot(u_boot_console, sha_algo, padding, required): """Test verified boot signing with mkimage and verification with 'bootm'. This works using sandbox only as it needs to update the device tree used @@ -297,11 +306,10 @@ def test_vboot(u_boot_console): # afterwards. old_dtb = cons.config.dtb cons.config.dtb = dtb - test_with_algo('sha1','') - test_with_algo('sha1','-pss') - test_with_algo('sha256','') - test_with_algo('sha256','-pss') - test_required_key('sha256','-pss') + if required: + test_required_key(sha_algo, padding) + else: + test_with_algo(sha_algo, padding) finally: # Go back to the original U-Boot with the correct dtb. cons.config.dtb = old_dtb |