
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/s... | 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
+@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