On Wed, Oct 02, 2024 at 12:18:39AM +0200, Heinrich Schuchardt wrote: > On 10/1/24 20:02, Tom Rini wrote: > > On Tue, Oct 01, 2024 at 04:34:54AM +0200, Heinrich Schuchardt wrote: > > > On 10/1/24 02:24, Tom Rini wrote: > > > > On Tue, Oct 01, 2024 at 01:38:56AM +0200, Heinrich Schuchardt wrote: > > > > > On 26.09.24 23:59, Simon Glass wrote: > > > > > > We don't want ANSI characters written in tests since it is a pain to > > > > > > check the output with ut_assert_nextline() et al. > > > > > > > > > > > > Provide a way to tests to request that ANSI characters not be sent. > > > > > > > > > > > > Add a proper function comment while we are here, to encourage > > > > > > others. > > > > > > > > > > > > Signed-off-by: Simon Glass <s...@chromium.org> > > > > > > > > > > Please, consider prior review before resubmitting patches. > > > > > > > > > > As responded to all prior submissions: > > > > > > > > > > We want to test the code running on actual machines. > > > > > We don't want to have sandbox code everywhere. > > > > > > > > > > I cannot see any test that is not passing due to the current behavior. > > > > > > > > The pytests for the EFI selftests are unreliable for me, on Raspberry Pi > > > > 3, more often in 32bit mode than 64bit mode, but I feel like I see it > > > > there too. And when they fail, the console log is full of ANSI escape > > > > sequences. Is this specific test a test you run regularly on real > > > > hardware? > > > > > > > > > > It is not only the EFI test but also pytest adding color to the console > > > output. > > > > Alright, so at least for the problems I have _today_, I've figured it > > out, and the problem is that the watchdog test fails too quickly: > > > > [snip] > > test/py/tests/test_efi_selftest.py ..F > > test/py/u_boot_console_base.p > > =================================== FAILURES > > =================================== > > ______________________ test_efi_selftest_watchdog_reboot > > _______________________ > > test/py/tests/test_efi_selftest.py:61: in test_efi_selftest_watchdog_reboot > > u_boot_console.restart_uboot() > > test/py/u_boot_console_base.py:478: in restart_uboot > > self.ensure_spawned(expect_reset) > > test/py/u_boot_console_base.py:442: in ensure_spawned > > self.wait_for_boot_prompt(loop_num = loop_num) > > test/py/u_boot_console_base.py:195: in wait_for_boot_prompt > > raise Exception('Bad pattern found on console: ' + > > E Exception: Bad pattern found on console: spl_signon > > ----------------------------- Captured stdout call > > ----------------------------- > > => setenv efi_selftest list > > => => bootefi selftest > > 7[r[999;999H[6n8No EFI system partition > > No EFI system partition > > Failed to persist EFI variables > > No EFI system partition > > Failed to persist EFI variables > > No EFI system partition > > Failed to persist EFI variables > > > > Available tests: > > 'block image transfer' - on request > > 'block device' > > 'configuration tables' > > 'controllers' > > 'crc32' > > 'device path' > > 'device path utilities protocol' > > 'conformance profile table' > > 'event groups' > > 'event services' > > 'exception' - on request > > 'ExitBootServices' > > 'device tree' > > 'graphical output' > > 'HII database protocols' > > 'load file protocol' > > 'loaded image' > > 'load image from file' > > 'mem' > > 'memory' > > 'open protocol' > > 'manage protocols' > > 'register protocol notify' > > 'reset system' - on request > > 'reset system runtime' - on request > > 'real time clock' > > 'simple network protocol' > > 'start image return' > > 'start image exit' > > 'text input' - on request > > 'extended text input' - on request > > 'text output' > > 'task priority levels' > > 'unicode collation' > > 'variables' > > 'variables at runtime' > > 'virtual address map' > > 'watchdog timer' > > 'watchdog reboot' - on request > > => => setenv efi_selftest watchdog reboot > > => => bootefi selftest > > [1;37;40m > > Testing EFI API implementation > > [0;37;40m[1;37;40m > > Selected test: 'watchdog reboot' > > [0;37;40m[1;34;40m > > Setting up 'watchdog reboot' > > [0;37;40m[1;32;40mSetting up 'watchdog reboot' succeeded > > [0;37;40m[1;34;40m > > Executing 'watchdog reboot' > > [0;37;40m > > EFI: Watchdog timeout > > resetting ... > > +u-boot-test-reset am64x_evm_a53 na > > Selected role am64-sk from configuration file > > Selected role am64-sk from configuration file > > connecting to NetworkSerialPort(target=Target(name='am64-sk', > > env=Environment(config_file='/home/trini/u-boot/lg_env.yaml')), > > name='USBSerialPort', state=<BindingState.bound: 1>, avail=True, > > host='ti-lab-host', port=57479, speed=115200, protocol='rfc2217') calling > > microcom -s 115200 -t ti-lab-host:57479 > > connected to 192.168.116.10 (port 57479) > > Escape character: Ctrl-\ > > Type the escape character to get to the prompt. > > > > U-Boot SPL 2024.10-rc5-00022-g17da9795c115 (Oct 01 2024 - 14:29:10 +0000) > > SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)') > > EEPROM not available at 0x50, trying to read at 0x51 > > SPL initial stack usage: 13368 bytes > > Trying to boot from MMC2 > > Loading Environment from MMC... MMC Device 0 not found > > *** Warning - No MMC card found, using default environment > > > > Starting ATF on ARM64 core... > > > > NOTICE: BL31: v2.10.0(release):v2.10.0-729-gc8be7c08c > > NOTICE: BL31: Built : 13:50:07, Apr 24 2024 > > I/TC: > > I/TC: OP-TEE version: 4.2.0-22-g16fbd46d2 (gcc version 13.2.0 (GCC)) #2 Wed > > Apr 24 19:50:23 UTC 2024 aarch64 > > I/TC: WARNING: This OP-TEE configuration might be insecure! > > I/TC: WARNING: Please check > > https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html > > I/TC: Primary CPU initializing > > I/TC: GIC redistributor base address not provided > > I/TC: Assuming default GIC group status and modifier > > I/TC: SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)') > > I/TC: HUK Initialized > > I/TC: Activated SA2UL device > > I/TC: Fixing SA2UL firewall owner for GP device > > I/TC: Enabled firewalls for SA2UL TRNG device > > I/TC: SA2UL TRNG initialized > > I/TC: SA2UL Drivers initialized > > I/TC: Primary CPU switching to normal world boot > > > > U-Boot SPL 2024.10-rc5-00022-g17da9795c115 (Oct 01 2024 - 14:31:31 +0000) > > SYSFW ABI: 3.1 (firmware rev 0x0009 '9.2.7--v09.02.07 (Kool Koala)') > > Trying to boot from MMC2 > > ? > > U-Boot SPL 2024.10-rc5-00022-g17da9795c115 (Oct 01 2024 - 14:29:10 +0000) > > Resetting on cold boot to workaround ErrataID:i2331 > > Please resend tiboot3.bin in case of UART/DFU boot > > resetting ... > > > > U-Boot SPL 2024.10-rc5-00022-g17da9795c115 (Oct 01 2024 - 14:29:10 +0000) > > =========================== short test summary info > > ============================ > > SKIPPED [47] test/py/conftest.py:512: board "am64x_evm_a53" not supported > > SKIPPED [5] test/py/conftest.py:531: .config feature "cmd_avb" not enabled > > SKIPPED [1] test/py/conftest.py:531: .config feature "optee_ta_avb" not > > enabled > > SKIPPED [1] test/py/conftest.py:531: .config feature "cmd_bootstage" not > > enabled > > SKIPPED [2] test/py/conftest.py:531: .config feature "bootstage_stash" not > > enabled > > SKIPPED [1] test/py/tests/test_dfu.py:114: got empty parameter set > > ['env__usb_dev_port'], function test_dfu at > > /home/trini/u-boot/u-boot/test/py/tests/test_dfu.py:113 > > SKIPPED [1] test/py/tests/test_efi_fit.py:401: No env__efi_fit_tftp_file > > binary specified in environment > > FAILED test/py/tests/test_efi_selftest.py::test_efi_selftest_watchdog_reboot > > !!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures > > !!!!!!!!!!!!!!!!!!!!!!!!!!! > > ================== 1 failed, 17 passed, 58 skipped in 58.92s > > =================== > > > > I thought it was the escape sequences confusing the check rather than > > the platform takes longer than expected to provide whatever the expected > > string is. Another TI K3 platform gets slightly farther along before > > failing the same way. I'm going back to looping over Pis to see if they > > fail in a way that they used to in my previous lab setup. > > > > The relevant error message is: > > E Exception: Bad pattern found on console: spl_signon > > The error occurs because the substring > > U-Boot SPL 2024.10 > > occurs multiple times during the reboot process. This is not expected in > wait_for_boot_prompt(). > > The EFI test is resetting the board and then calling restart_uboot() > which by itself does another reset. > > While the watchdog triggered reboot is running thee test environment may > need some time before triggering a reboot itself. This may lead to the > observed duplicate output of the U-Boot greeter which is recorded as an > error. > > Maybe we should directly call wait_for_boot_prompt(loop_num = 2). > > > diff --git a/test/py/tests/test_efi_selftest.py > b/test/py/tests/test_efi_selftest.py > index 43f24245582..c3ee1888afb 100644 > --- a/test/py/tests/test_efi_selftest.py > +++ b/test/py/tests/test_efi_selftest.py > @@ -58,7 +58,7 @@ def test_efi_selftest_watchdog_reboot(u_boot_console): > u_boot_console.run_command(cmd='bootefi selftest', > wait_for_prompt=False) > if u_boot_console.p.expect(['resetting', 'U-Boot']): > raise Exception('Reset failed in \'watchdog reboot\' test') > - u_boot_console.restart_uboot() > + u_boot_console.wait_for_boot_prompt(loop_num = 2) > > @pytest.mark.buildconfigspec('cmd_bootefi_selftest') > def test_efi_selftest_text_input(u_boot_console): > > Thanks for bringing the issue to my attention.
Thanks for digging in to this more. I suspect (and I'll try and confirm soon) that we need to take in to account: commit 645f75f6884a22905b0e3790ca9254fa1a13216e Author: Tom Rini <tr...@konsulko.com> Date: Wed Apr 24 16:45:37 2024 -0600 test/py: Make the number of SPL banners seen a variable Currently we have the option to tell the console code that we should ignore the SPL banner. We also have an option to say that we can see it a second time, and ignore it. However, some platforms such as TI AM64x will have us see the SPL banner three times. Rather than add an "spl3_skipped" option, rework the code. By default we expect to see the banner once, but boards can specify seeing it as many times as they expect to. Signed-off-by: Tom Rini <tr...@konsulko.com> as well in this area. > > Best regards > > Heinrich > -- Tom
signature.asc
Description: PGP signature