diff options
author | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2017-10-18 18:13:13 +0200 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2017-12-01 13:22:55 +0100 |
commit | d78e40d651972ef061c960e4b7da7843383c2ec9 (patch) | |
tree | 141b41d60b1966f3f77ca6c7c6aaa4b8157e9cf2 /include/efi_selftest.h | |
parent | 1f66a12e237f7ce9dc9b997e7ce0b2a33893ce12 (diff) | |
download | u-boot-d78e40d651972ef061c960e4b7da7843383c2ec9.tar.gz u-boot-d78e40d651972ef061c960e4b7da7843383c2ec9.tar.bz2 u-boot-d78e40d651972ef061c960e4b7da7843383c2ec9.zip |
efi_selftest: allow to select a single test for execution
Environment variable efi_selftest is passed as load options
to the selftest application. It is used to select a single
test to be executed.
The load options are an UTF8 string. Yet I decided to keep
the name propertiy of the tests as char[] to reduce code
size.
Special value 'list' displays a list of all available tests.
Tests get an on_request property. If this property is set
the tests are only executed if explicitly requested.
The invocation of efi_selftest is changed to reflect that
bootefi selftest with efi_selftest = 'list' will call the
Exit bootservice.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'include/efi_selftest.h')
-rw-r--r-- | include/efi_selftest.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/efi_selftest.h b/include/efi_selftest.h index 7ec42a0406..5cc8d4f600 100644 --- a/include/efi_selftest.h +++ b/include/efi_selftest.h @@ -12,6 +12,7 @@ #include <common.h> #include <efi.h> #include <efi_api.h> +#include <efi_loader.h> #include <linker_lists.h> #define EFI_ST_SUCCESS 0 @@ -72,6 +73,15 @@ void efi_st_printf(const char *fmt, ...) int efi_st_memcmp(const void *buf1, const void *buf2, size_t length); /* + * Compare an u16 string to a char string. + * + * @buf1: u16 string + * @buf2: char string + * @return: 0 if both buffers contain the same bytes + */ +int efi_st_strcmp_16_8(const u16 *buf1, const char *buf2); + +/* * Reads an Unicode character from the input device. * * @return: Unicode character @@ -88,6 +98,7 @@ u16 efi_st_get_key(void); * @setup: set up the unit test * @teardown: tear down the unit test * @execute: execute the unit test + * @on_request: test is only executed on request */ struct efi_unit_test { const char *name; @@ -96,6 +107,7 @@ struct efi_unit_test { const struct efi_system_table *systable); int (*execute)(void); int (*teardown)(void); + bool on_request; }; /* Declare a new EFI unit test */ |