diff options
author | Randall Spangler <rspangler@chromium.org> | 2013-02-06 17:10:55 -0800 |
---|---|---|
committer | ChromeBot <chrome-bot@google.com> | 2013-02-11 15:34:45 -0800 |
commit | fe510c06204c763e61aa36d2263c3b8b79c79879 (patch) | |
tree | e5cd5fbae9a39ef956beba8fdc5f062ea46b139e /tests/vboot_display_tests.c | |
parent | 7f43669630cb42e40ca6ddc1128eefea8fd339d9 (diff) | |
download | vboot-fe510c06204c763e61aa36d2263c3b8b79c79879.tar.gz |
Add more display tests
BUG=chromium-os:38139
BRANCH=none
TEST=make runtests && FEATURES=test emerge-daisy vboot_reference
Change-Id: I28cd31f995f078d1715acaeaccce6e864930a986
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42846
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Diffstat (limited to 'tests/vboot_display_tests.c')
-rw-r--r-- | tests/vboot_display_tests.c | 54 |
1 files changed, 51 insertions, 3 deletions
diff --git a/tests/vboot_display_tests.c b/tests/vboot_display_tests.c index b3950438..3093534d 100644 --- a/tests/vboot_display_tests.c +++ b/tests/vboot_display_tests.c @@ -9,6 +9,7 @@ #include <stdlib.h> #include <string.h> +#include "bmpblk_font.h" #include "gbb_header.h" #include "host_common.h" #include "test_common.h" @@ -148,6 +149,7 @@ static void DisplayKeyTest(void) TEST_NEQ(*debug_info, '\0', "DisplayKey tab = display"); /* Toggle localization */ + ResetMocks(); VbNvSet(&vnc, VBNV_LOCALIZATION_INDEX, 0); VbNvTeardown(&vnc); VbCheckDisplayKey(&cparams, VB_KEY_DOWN, &vnc); @@ -164,6 +166,7 @@ static void DisplayKeyTest(void) TEST_EQ(u, 0, "DisplayKey up"); /* Reset localization if localization count is invalid */ + ResetMocks(); VbNvSet(&vnc, VBNV_LOCALIZATION_INDEX, 1); VbNvTeardown(&vnc); bhdr->signature[0] ^= 0x5a; @@ -173,14 +176,59 @@ static void DisplayKeyTest(void) } -/* disable MSVC warnings on unused arguments */ -__pragma(warning (disable: 4100)) +static void FontTest(void) +{ + FontArrayHeader h; + FontArrayEntryHeader eh[3] = { + { + .ascii = 'A', + .info.original_size = 10, + }, + { + .ascii = 'B', + .info.original_size = 20, + }, + { + .ascii = 'C', + .info.original_size = 30, + }, + }; + FontArrayEntryHeader *eptr; + uint8_t buf[sizeof(h) + sizeof(eh)]; + VbFont_t *fptr; + void *bufferptr; + uint32_t buffersize; + + /* Create font data */ + h.num_entries = ARRAY_SIZE(eh); + Memcpy(buf, &h, sizeof(h)); + eptr = (FontArrayEntryHeader *)(buf + sizeof(h)); + Memcpy(eptr, eh, sizeof(eh)); + + fptr = VbInternalizeFontData((FontArrayHeader *)buf); + TEST_PTR_EQ(fptr, buf, "Internalize"); + + TEST_PTR_EQ(VbFindFontGlyph(fptr, 'B', &bufferptr, &buffersize), + &eptr[1].info, "Glyph found"); + TEST_EQ(buffersize, eptr[1].info.original_size, " size"); + TEST_PTR_EQ(VbFindFontGlyph(fptr, 'X', &bufferptr, &buffersize), + &eptr[0].info, "Glyph not found"); + TEST_EQ(buffersize, eptr[0].info.original_size, " size"); + + /* Test invalid rendering params */ + VbRenderTextAtPos(NULL, 0, 0, 0, fptr); + VbRenderTextAtPos("ABC", 0, 0, 0, NULL); + + VbDoneWithFontForNow(fptr); + +} -int main(int argc, char* argv[]) +int main(void) { DebugInfoTest(); LocalizationTest(); DisplayKeyTest(); + FontTest(); return gTestSuccess ? 0 : 255; } |