efi_selftest: implement exception test for sandbox
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Wed, 11 Nov 2020 23:29:58 +0000 (00:29 +0100)
committerSimon Glass <sjg@chromium.org>
Sun, 13 Dec 2020 14:58:17 +0000 (07:58 -0700)
commit04cc7914f2697cdc43b1cd5e0d7ab73893327966
treef3d09f1bb14bfafa937bb70e0ac8d6641ac9df70
parent3a5ec0357868b384d43af93d8a20e4c85b00586c
efi_selftest: implement exception test for sandbox

Provide a unit test that causes an illegal instruction to occur.

The test can be run with the following commands:

    => setenv efi_selftest exception
    => bootefi selftest

This might be the output:

    Executing 'exception'
    EFI application triggers exception.
    Illegal instruction
    pc = 0x1444d016, pc_reloc = 0xffffaa078e8dd016
    UEFI image [0x0000000000000000:0xffffffffffffffff] '/\selftest'
    UEFI image [0x000000001444b000:0x0000000014451fff] pc=0x2016 '/bug.efi'
    Resetting ...

It would tell us that the exception was triggered by an instruction
0x2016 bytes after the load address of the binary with filename /bug.efi.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
lib/efi_selftest/efi_selftest_miniapp_exception.c