diff options
Diffstat (limited to 'tests/vb2_ui_tests.c')
-rw-r--r-- | tests/vb2_ui_tests.c | 94 |
1 files changed, 65 insertions, 29 deletions
diff --git a/tests/vb2_ui_tests.c b/tests/vb2_ui_tests.c index 607087e7..3eb0c9f9 100644 --- a/tests/vb2_ui_tests.c +++ b/tests/vb2_ui_tests.c @@ -100,6 +100,8 @@ static char mock_prepare_log[64][MOCK_PREPARE_LOG_SIZE]; static int mock_prepare_log_count; static uint32_t mock_log_page_count; +static vb2_error_t mock_diag_storage_test_rv; + static void add_mock_key(uint32_t press, int trusted) { if (mock_key_total >= ARRAY_SIZE(mock_key) || @@ -353,6 +355,8 @@ static void reset_common_data(enum reset_type t) else add_mock_vbtlk(VB2_ERROR_MOCK, 0); add_mock_pp_pressed(0); + + mock_diag_storage_test_rv = VB2_SUCCESS; } /* Mock functions */ @@ -571,6 +575,11 @@ uint32_t vb2ex_prepare_log_screen(enum vb2_screen screen, uint32_t locale_id, return mock_log_page_count; } +vb2_error_t vb2ex_diag_get_storage_test_log(const char **log) +{ + return mock_diag_storage_test_rv; +} + /* Tests */ static void developer_tests(void) { @@ -1794,8 +1803,8 @@ static void diagnostics_screen_tests(void) reset_common_data(FOR_DIAGNOSTICS); TEST_EQ(vb2_diagnostic_menu(ctx), VB2_REQUEST_SHUTDOWN, "diagnostic screen: no disabled or hidden item"); - DISPLAYED_EQ("diagnostic menu", VB2_SCREEN_DIAGNOSTICS, - MOCK_IGNORE, MOCK_IGNORE, 0x0, 0x0, MOCK_IGNORE); + DISPLAYED_EQ("diagnostic menu", VB2_SCREEN_DIAGNOSTICS, MOCK_IGNORE, + MOCK_IGNORE, 0x0, 0x0, MOCK_IGNORE); /* Diagnostics screen */ reset_common_data(FOR_DIAGNOSTICS); @@ -1803,67 +1812,94 @@ static void diagnostics_screen_tests(void) /* #0: Language menu */ add_mock_keypress(VB_KEY_UP); add_mock_keypress(VB_KEY_ENTER); - /* #1: Storage screen */ add_mock_keypress(VB_KEY_ESC); + /* #1: Storage health screen */ + add_mock_keypress(VB_KEY_DOWN); + add_mock_keypress(VB_KEY_ENTER); + add_mock_keypress(VB_KEY_ESC); + /* #2: Short storage self-test screen */ + add_mock_keypress(VB_KEY_DOWN); + add_mock_keypress(VB_KEY_ENTER); + add_mock_keypress(VB_KEY_ESC); + /* #3: Extended storage self-test screen */ add_mock_keypress(VB_KEY_DOWN); add_mock_keypress(VB_KEY_ENTER); - /* #2: Quick memory test screen */ add_mock_keypress(VB_KEY_ESC); + /* #4: Quick memory test screen */ add_mock_keypress(VB_KEY_DOWN); add_mock_keypress(VB_KEY_ENTER); - /* #3: Full memory test screen */ add_mock_keypress(VB_KEY_ESC); + /* #5: Full memory test screen */ add_mock_keypress(VB_KEY_DOWN); add_mock_keypress(VB_KEY_ENTER); - /* #4: Power off (End of menu) */ add_mock_keypress(VB_KEY_ESC); + /* #6: Power off (End of menu) */ add_mock_keypress(VB_KEY_DOWN); add_mock_keypress(VB_KEY_ENTER); mock_calls_until_shutdown = -1; TEST_EQ(vb2_diagnostic_menu(ctx), VB2_REQUEST_SHUTDOWN, "diagnostic screen"); - DISPLAYED_EQ("default on first button of menu", - VB2_SCREEN_DIAGNOSTICS, MOCK_IGNORE, 1, MOCK_IGNORE, - MOCK_IGNORE, MOCK_IGNORE); + DISPLAYED_EQ("default on first button of menu", VB2_SCREEN_DIAGNOSTICS, + MOCK_IGNORE, 1, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); /* #0: Language menu */ - DISPLAYED_EQ("language selection", - VB2_SCREEN_DIAGNOSTICS, MOCK_IGNORE, 0, MOCK_IGNORE, - MOCK_IGNORE, MOCK_IGNORE); + DISPLAYED_EQ("language selection", VB2_SCREEN_DIAGNOSTICS, MOCK_IGNORE, + 0, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); DISPLAYED_EQ("#0: language menu", VB2_SCREEN_LANGUAGE_SELECT, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); - /* #1: Storage screen */ DISPLAYED_PASS(); - DISPLAYED_EQ("storage button", - VB2_SCREEN_DIAGNOSTICS, MOCK_IGNORE, 1, MOCK_IGNORE, - MOCK_IGNORE, MOCK_IGNORE); + /* #1: Storage health screen */ + DISPLAYED_EQ("storage health button", VB2_SCREEN_DIAGNOSTICS, + MOCK_IGNORE, 1, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); DISPLAYED_EQ("#1: storage screen", VB2_SCREEN_DIAGNOSTICS_STORAGE_HEALTH, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); - /* #2: Quick memory test screen */ DISPLAYED_PASS(); - DISPLAYED_EQ("quick memory test button", - VB2_SCREEN_DIAGNOSTICS, MOCK_IGNORE, 2, MOCK_IGNORE, - MOCK_IGNORE, MOCK_IGNORE); - DISPLAYED_EQ("#1: quick memory test screen", - VB2_SCREEN_DIAGNOSTICS_MEMORY_QUICK, MOCK_IGNORE, + /* #2: Short storage self-test screen */ + DISPLAYED_EQ("short storage self-test button", VB2_SCREEN_DIAGNOSTICS, + MOCK_IGNORE, 2, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); + DISPLAYED_EQ("#2: short storage self-test screen", + VB2_SCREEN_DIAGNOSTICS_STORAGE_TEST_SHORT, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); - /* #3: Full memory test screen */ DISPLAYED_PASS(); - DISPLAYED_EQ("full memory test button", + /* #3: Extended storage self-test screen */ + DISPLAYED_EQ("extended storage self-test button", VB2_SCREEN_DIAGNOSTICS, MOCK_IGNORE, 3, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); - DISPLAYED_EQ("#3: full memory test screen", + DISPLAYED_EQ("#3: extended storage self-test screen", + VB2_SCREEN_DIAGNOSTICS_STORAGE_TEST_EXTENDED, MOCK_IGNORE, + MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); + DISPLAYED_PASS(); + /* #4: Quick memory test screen */ + DISPLAYED_EQ("quick memory test button", VB2_SCREEN_DIAGNOSTICS, + MOCK_IGNORE, 4, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); + DISPLAYED_EQ("#4: quick memory test screen", + VB2_SCREEN_DIAGNOSTICS_MEMORY_QUICK, MOCK_IGNORE, + MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); + DISPLAYED_PASS(); + /* #5: Full memory test screen */ + DISPLAYED_EQ("full memory test button", VB2_SCREEN_DIAGNOSTICS, + MOCK_IGNORE, 5, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); + DISPLAYED_EQ("#5: full memory test screen", VB2_SCREEN_DIAGNOSTICS_MEMORY_FULL, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); - /* #4: Power of (End of menu) */ DISPLAYED_PASS(); - DISPLAYED_EQ("power off", - VB2_SCREEN_DIAGNOSTICS, MOCK_IGNORE, 4, MOCK_IGNORE, - MOCK_IGNORE, MOCK_IGNORE); + /* #6: Power of (End of menu) */ + DISPLAYED_EQ("power off", VB2_SCREEN_DIAGNOSTICS, MOCK_IGNORE, 6, + MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE); DISPLAYED_NO_EXTRA(); + /* Diagnostics screen: no nvme */ + reset_common_data(FOR_DIAGNOSTICS); + /* Non-nvme storage returns UNIMPLEMENTED. */ + mock_diag_storage_test_rv = VB2_ERROR_EX_UNIMPLEMENTED; + TEST_EQ(vb2_diagnostic_menu(ctx), VB2_REQUEST_SHUTDOWN, + "diagnostic screen: check disabled item"); + DISPLAYED_EQ("diagnostic menu: self-test disabled", + VB2_SCREEN_DIAGNOSTICS, MOCK_IGNORE, MOCK_IGNORE, 0xc, 0x0, + MOCK_IGNORE); + VB2_DEBUG("...done.\n"); } |