From: Ahmad Fatoum <a.fat...@pengutronix.de> This simple test checks that the security policies were added and that a number of options that we expect to be there indeed change as expected.
Signed-off-by: Ahmad Fatoum <a.fat...@pengutronix.de> --- test/arm/virt32_secure_defconfig.yaml | 1 + test/py/test_policies.py | 48 +++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/test/arm/virt32_secure_defconfig.yaml b/test/arm/virt32_secure_defconfig.yaml index a1537c634811d10957b7fd0cc49d6b66c1b80e06..3a26e09ef683093279d9fd068e6e8e968cb34a9e 100644 --- a/test/arm/virt32_secure_defconfig.yaml +++ b/test/arm/virt32_secure_defconfig.yaml @@ -15,6 +15,7 @@ targets: BareboxTestStrategy: {} features: - virtio-mmio + - policies images: barebox-dt-2nd.img: !template "$LG_BUILDDIR/images/barebox-dt-2nd.img" imports: diff --git a/test/py/test_policies.py b/test/py/test_policies.py new file mode 100644 index 0000000000000000000000000000000000000000..b4ece29c95974b182aa1275d1710742f52ad4cea --- /dev/null +++ b/test/py/test_policies.py @@ -0,0 +1,48 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + +import pytest + + +def test_security_policies(barebox, env): + if 'policies' not in env.get_target_features(): + pytest.skip('policies feature flag missing') + + assert 'Active Policy: devel' in barebox.run_check('sconfig') + + assert set(barebox.run_check('sconfig -l')) == \ + set(['devel', 'factory', 'lockdown', 'tamper']) + + assert barebox.run_check('varinfo global.bootm.verify') == \ + ['bootm.verify: available (type: enum) ' + '(values: "none", "hash", "signature", "available")'] + + barebox.run_check('sconfig -s factory') + assert 'Active Policy: factory' in barebox.run_check('sconfig') + + stdout = barebox.run_check('sconfig -v -s devel') + assert set(['+SCONFIG_BOOT_UNSIGNED_IMAGES', + '+SCONFIG_CMD_GO']) <= set(stdout) + assert 'Active Policy: devel' in barebox.run_check('sconfig') + + stdout, _, rc = barebox.run('go') + assert 'go - start application at address or file' in stdout + assert 'go: Operation not permitted' not in stdout + assert rc == 1 + + stdout = barebox.run_check('sconfig -v -s tamper') + assert set(['-SCONFIG_BOOT_UNSIGNED_IMAGES', + '-SCONFIG_RATP', + '-SCONFIG_CMD_GO']) <= set(stdout) + assert 'Active Policy: tamper' in barebox.run_check('sconfig') + + _, _, rc = barebox.run('sconfig -s devel') + assert rc != 0 + assert 'Active Policy: tamper' in barebox.run_check('sconfig') + + stdout, _, rc = barebox.run('go') + assert 'go - start application at address or file' not in stdout + assert 'go: Operation not permitted' in stdout + assert rc == 127 + + assert barebox.run_check('varinfo global.bootm.verify') == \ + ['bootm.verify: signature (type: enum)'] -- 2.47.3