Hi Adriano, On Wed, 22 Jan 2025 at 10:10, Adriano Cordova <adria...@gmail.com> wrote: > > check that the number of ethernet udevices matches the number of simple > network protocols > > Signed-off-by: Adriano Cordova <adriano.cord...@canonical.com> > --- > test/py/tests/test_efi_selftest.py | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/test/py/tests/test_efi_selftest.py > b/test/py/tests/test_efi_selftest.py > index 310d8ed294..af9992a6f7 100644 > --- a/test/py/tests/test_efi_selftest.py > +++ b/test/py/tests/test_efi_selftest.py > @@ -195,3 +195,24 @@ def test_efi_selftest_tcg2(u_boot_console): > if u_boot_console.p.expect(['Summary: 0 failures', 'Press any key']): > raise Exception('Failures occurred during the EFI selftest') > u_boot_console.restart_uboot() > + > +@pytest.mark.buildconfigspec('cmd_bootefi_selftest') > +@pytest.mark.buildconfigspec('cmd_dm') > +def test_efi_selftest_count_netdevices(u_boot_console): > + """Test the EFI net device driver > + > + u_boot_console -- U-Boot console > + > + This function counts the number of ETH_UCLASS probed udevices > + calls the EFI net device selftest to check that the EFI driver > + sees the same. > + """ > + u_boot_console.restart_uboot()
We should avoid restarting U-Boot in a test unless there is a strong need. It makes things a lot slower! > + response = u_boot_console.run_command('dm tree') > + lines = response.splitlines()[2:] > + ethernet_count = sum(1 for line in lines if > line.strip().startswith('ethernet') and '[ + ]' in line) This test should be written in C, e.g: struct udevice *dev; int count; uclass_foreach_dev(dev, UCLASS_ETH) if (device_active(dev)) count++; > + > + u_boot_console.run_command(cmd='setenv efi_selftest netdevices') > + u_boot_console.run_command('bootefi selftest', wait_for_prompt=False) > + if u_boot_console.p.expect([f'Detected {ethernet_count} active EFI net > devices']): > + raise Exception('Failures occurred during the EFI selftest') Again, this should be written in C and use run_command(). Regards, Simon