aboutsummaryrefslogtreecommitdiff
path: root/lib/efi_selftest/efi_selftest_util.c
diff options
context:
space:
mode:
authorHeinrich Schuchardt <xypron.glpk@gmx.de>2017-10-18 18:13:13 +0200
committerAlexander Graf <agraf@suse.de>2017-12-01 13:22:55 +0100
commitd78e40d651972ef061c960e4b7da7843383c2ec9 (patch)
tree141b41d60b1966f3f77ca6c7c6aaa4b8157e9cf2 /lib/efi_selftest/efi_selftest_util.c
parent1f66a12e237f7ce9dc9b997e7ce0b2a33893ce12 (diff)
downloadu-boot-d78e40d651972ef061c960e4b7da7843383c2ec9.zip
u-boot-d78e40d651972ef061c960e4b7da7843383c2ec9.tar.gz
u-boot-d78e40d651972ef061c960e4b7da7843383c2ec9.tar.bz2
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 'lib/efi_selftest/efi_selftest_util.c')
-rw-r--r--lib/efi_selftest/efi_selftest_util.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/efi_selftest/efi_selftest_util.c b/lib/efi_selftest/efi_selftest_util.c
index 5f81f25..1b17bf4 100644
--- a/lib/efi_selftest/efi_selftest_util.c
+++ b/lib/efi_selftest/efi_selftest_util.c
@@ -23,3 +23,12 @@ int efi_st_memcmp(const void *buf1, const void *buf2, size_t length)
}
return 0;
}
+
+int efi_st_strcmp_16_8(const u16 *buf1, const char *buf2)
+{
+ for (; *buf1 || *buf2; ++buf1, ++buf2) {
+ if (*buf1 != *buf2)
+ return *buf1 - *buf2;
+ }
+ return 0;
+}