test/py: serial# cannot be overwritten on some devices

On some devices the environment variable serial# cannot be overwritten.
Set the variable only if it is not set.

For our unit test it is sufficient to test if any value for serial-number
is set.

Fixes: 8a5cdf601f ("test: efi_selftest: Do not force serial# setting")
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
Heinrich Schuchardt 2020-08-07 23:11:35 +02:00 committed by Tom Rini
parent 626b2df302
commit 38ee01e4dd

View file

@ -23,6 +23,7 @@ def test_efi_selftest(u_boot_console):
u_boot_console.restart_uboot()
@pytest.mark.buildconfigspec('cmd_bootefi_selftest')
@pytest.mark.buildconfigspec('hush_parser')
@pytest.mark.buildconfigspec('of_control')
@pytest.mark.notbuildconfigspec('generate_acpi_table')
def test_efi_selftest_device_tree(u_boot_console):
@ -36,9 +37,11 @@ def test_efi_selftest_device_tree(u_boot_console):
output = u_boot_console.run_command('bootefi selftest')
assert '\'device tree\'' in output
u_boot_console.run_command(cmd='setenv efi_selftest device tree')
u_boot_console.run_command(cmd='setenv serial# Testing DT')
# Set serial# if it is not already set.
u_boot_console.run_command(cmd='setenv efi_test "${serial#}x"')
u_boot_console.run_command(cmd='test "${efi_test}" = x && setenv serial# 0')
u_boot_console.run_command(cmd='bootefi selftest ${fdtcontroladdr}', wait_for_prompt=False)
m = u_boot_console.p.expect(['serial-number: Testing DT', 'U-Boot'])
m = u_boot_console.p.expect(['serial-number:', 'U-Boot'])
if m != 0:
raise Exception('serial-number missing in device tree')
u_boot_console.restart_uboot()