[U-Boot] [PATCH v2] travis: Add efi_loader grub2 test

Alexander Graf agraf at suse.de
Tue Nov 22 00:21:06 CET 2016



On 21/11/2016 23:21, Stephen Warren wrote:
> On 11/18/2016 05:18 AM, Alexander Graf wrote:
>> We have all the building blocks now to run arbitrary efi applications
>> in travis. The most important one out there is grub2, so let's add
>> a simple test to verify that grub2 still comes up.
>
>> diff --git a/.travis.yml b/.travis.yml
>
>> @@ -45,6 +48,9 @@ install:
>>   - virtualenv /tmp/venv
>>   - . /tmp/venv/bin/activate
>>   - pip install pytest
>> + - grub-mkimage -o ~/grub_x86.efi -O i386-efi normal  echo lsefimmap
>> lsefi lsefisystab efinet tftp minicmd
>> + - mkdir ~/grub2-arm
>> + - ( cd ~/grub2-arm; wget -O -
>> http://download.opensuse.org/ports/armv7hl/distribution/leap/42.2/repo/oss/suse/armv7hl/grub2-arm-efi-2.02~beta2-87.1.armv7hl.rpm
>> | rpm2cpio | cpio -di )
>
> Do we really want to do this for all the build-only jobs too? I might
> have expected to do this inside the test scripts that actually use those
> binaries.
>
>> diff --git a/test/py/tests/test_efi_loader.py
>> b/test/py/tests/test_efi_loader.py
>
>> + at pytest.mark.buildconfigspec('cmd_bootefi')
>
>> +    u_boot_console.run_command('bootefi %x' % addr,
>> wait_for_prompt=False)
>> +
>> +    # Verify that we have an SMBIOS table
>> +    check_smbios =
>> u_boot_console.config.env.get('env__efi_loader_check_smbios', False)
>> +    if check_smbios:
>> +        u_boot_console.wait_for('grub>')
>> +        output = u_boot_console.run_command('lsefisystab',
>> wait_for_prompt=False, wait_for_echo=False)
>> +        u_boot_console.wait_for('SMBIOS')
>> +
>> +    # Then exit cleanly
>> +    u_boot_console.wait_for('grub>')
>> +    output = u_boot_console.run_command('exit',
>> wait_for_prompt=False, wait_for_echo=False)
>> +    u_boot_console.wait_for('r = 0')
>> +
>> +    # And give us our U-Boot prompt back
>> +    u_boot_console.run_command('')
>
> I can't help wondering if adding push_prompt() function (for use in a
> Python "with" statement) to u_boot_console wouldn't be better; that
> would avoid all the wait_for_prompt=False and wait_for(prompt) logic there.

What would that function do? The same?

JFYI, I've added the html log output for the sequence above at the end 
of the email.


Alex


tftpboot 80400000 grub_arm.efi
smc911x: MAC 52:54:00:12:34:56
smc911x: detected LAN9118 controller
smc911x: phy initialized
smc911x: MAC 52:54:00:12:34:56
Using smc911x-0 device
TFTP from server 10.0.2.2; our IP address is 10.0.2.15
Filename 'grub_arm.efi'.
Load address: 0x80400000
Loading: 
*%08#################################################################
          #################################################################
          ##############
          14.3 MiB/s
done
Bytes transferred = 732672 (b2e00 hex)
smc911x: MAC 52:54:00:12:34:56
=> crc32 80400000 $filesize
CRC32 for 80400000 ... 804b2dff ==> 4afa7ec6
=> bootefi 80400000
## Starting EFI application at 80400000 ...
WARNING: Invalid device tree, expect boot to fail
Scanning disks on mmc...
Card did not respond to voltage select!
MMC Device 1 not found
MMC Device 2 not found
MMC Device 3 not found
Found 0 disks
%1b[?25hWelcome to GRUB!

smc911x: detected LAN9118 controller
smc911x: phy initialized
smc911x: MAC 52:54:00:12:34:56
smc911x: detected LAN9118 controller
smc911x: phy initialized
smc911x: MAC 52:54:00:12:34:56
%1b[2J%1b[18t%1b[1;26fGNU GRUB  version 2.02~beta2

%1b[?25h Minimal BASH-like line editing is supported. For the first 
word, TAB
    lists possible command completions. Anywhere else TAB lists possible
    device or file completions.



grub> 
%1b[9;6fe%1b[9;7f%1b[9;7fx%1b[9;8f%1b[9;8fi%1b[9;9f%1b[9;9ft%1b[9;10f
## Application terminated, r = 0


More information about the U-Boot mailing list