summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHsuan Ting Chen <roccochen@chromium.org>2020-05-28 16:29:26 +0800
committerCommit Bot <commit-bot@chromium.org>2020-06-05 04:40:00 +0000
commitddf24c46aa59b5432de5aec776b2777a440c75fd (patch)
treeda55778f978cecd12fe924da3ac363d0b65b4dd2
parent76040094f6ff7e567f6fa28c742090a2bb6d13fd (diff)
downloadvboot-ddf24c46aa59b5432de5aec776b2777a440c75fd.tar.gz
vboot/ui: Add tests for advanced options
Unit tests paired with CL:2186958. BUG=b:146399181, b:156448738 TEST=CC=x86_64-pc-linux-gnu-clang; make clean && make runtests TEST=CC=x86_64-pc-linux-gnu-clang; DETACHABLE=1; make clean && make runtests TEST=CC=x86_64-pc-linux-gnu-clang; PHYSICAL_PRESENCE_KEYBOARD=1; make clean && make runtests BRANCH=none Cq-Depend: chromium:2228256 Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: Ife471db3f1f2e945f1517e865b22cf0d0fdfe451 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2217549 Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
-rw-r--r--tests/vb2_ui_tests.c143
1 files changed, 143 insertions, 0 deletions
diff --git a/tests/vb2_ui_tests.c b/tests/vb2_ui_tests.c
index 4aae2225..d4b8faab 100644
--- a/tests/vb2_ui_tests.c
+++ b/tests/vb2_ui_tests.c
@@ -767,6 +767,49 @@ static void developer_screen_tests(void)
MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE);
DISPLAYED_NO_EXTRA();
+ /* Advanced options screen */
+ reset_common_data(FOR_DEVELOPER);
+ add_mock_vbtlk(VB2_SUCCESS, VB_DISK_FLAG_FIXED);
+ add_mock_keypress(VB_KEY_DOWN);
+ add_mock_keypress(VB_KEY_ENTER);
+ /* #0: Language menu */
+ add_mock_keypress(VB_KEY_UP);
+ add_mock_keypress(VB_KEY_ENTER);
+ /* #1: (Disabled) */
+ /* #2: Back */
+ add_mock_keypress(VB_KEY_ESC);
+ add_mock_keypress(VB_KEY_DOWN);
+ add_mock_keypress(VB_KEY_ENTER);
+ add_mock_keypress(VB_KEY_ENTER);
+ /* End of menu */
+ add_mock_keypress(VB_KEY_DOWN);
+ add_mock_keypress(VB_KEY_ENTER);
+ add_mock_keypress(VB_KEY_DOWN);
+ extend_calls_until_shutdown();
+ TEST_EQ(vb2_developer_menu(ctx), VB2_REQUEST_SHUTDOWN,
+ "advanced options screen");
+ DISPLAYED_PASS();
+ DISPLAYED_PASS();
+ /* #0: Language menu */
+ DISPLAYED_PASS();
+ DISPLAYED_EQ("advanced options", VB2_SCREEN_ADVANCED_OPTIONS,
+ MOCK_IGNORE, 0, 0x2);
+ DISPLAYED_EQ("#0: language menu", VB2_SCREEN_LANGUAGE_SELECT,
+ MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE);
+ /* #1: (Disabled) */
+ /* #2: Back */
+ DISPLAYED_PASS();
+ DISPLAYED_PASS();
+ DISPLAYED_EQ("advanced options", VB2_SCREEN_ADVANCED_OPTIONS,
+ MOCK_IGNORE, 2, 0x2);
+ DISPLAYED_EQ("#2: back", VB2_SCREEN_DEVELOPER_MODE,
+ MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE);
+ /* End of menu */
+ DISPLAYED_PASS();
+ DISPLAYED_EQ("end of menu", VB2_SCREEN_ADVANCED_OPTIONS,
+ MOCK_IGNORE, 2, MOCK_IGNORE);
+ DISPLAYED_NO_EXTRA();
+
VB2_DEBUG("...done.\n");
}
@@ -802,6 +845,42 @@ static void broken_recovery_screen_tests(void)
MOCK_IGNORE, 1, MOCK_IGNORE);
DISPLAYED_NO_EXTRA();
+ /* Advanced options screen */
+ reset_common_data(FOR_BROKEN_RECOVERY);
+ add_mock_keypress(VB_KEY_ENTER);
+ /* #0: Language menu */
+ add_mock_keypress(VB_KEY_UP);
+ add_mock_keypress(VB_KEY_ENTER);
+ /* #1: (Disabled) */
+ /* #2: Back */
+ add_mock_keypress(VB_KEY_ESC);
+ add_mock_keypress(VB_KEY_ENTER);
+ add_mock_keypress(VB_KEY_ENTER);
+ /* End of menu */
+ add_mock_keypress(VB_KEY_ENTER);
+ add_mock_keypress(VB_KEY_DOWN); /* Blocked */
+ extend_calls_until_shutdown();
+ TEST_EQ(vb2_broken_recovery_menu(ctx), VB2_REQUEST_SHUTDOWN,
+ "advanced options screen");
+ DISPLAYED_PASS();
+ /* #0: Language menu */
+ DISPLAYED_PASS();
+ DISPLAYED_EQ("advanced options", VB2_SCREEN_ADVANCED_OPTIONS,
+ MOCK_IGNORE, 0, 0x2);
+ DISPLAYED_EQ("#0: language menu", VB2_SCREEN_LANGUAGE_SELECT,
+ MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE);
+ /* #1: (Disabled) */
+ /* #2: Back */
+ DISPLAYED_PASS();
+ DISPLAYED_EQ("advanced options", VB2_SCREEN_ADVANCED_OPTIONS,
+ MOCK_IGNORE, 2, 0x2);
+ DISPLAYED_EQ("#2: back", VB2_SCREEN_RECOVERY_BROKEN,
+ MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE);
+ /* End of menu */
+ DISPLAYED_EQ("end of menu", VB2_SCREEN_ADVANCED_OPTIONS,
+ MOCK_IGNORE, 2, MOCK_IGNORE);
+ DISPLAYED_NO_EXTRA();
+
VB2_DEBUG("...done.\n");
}
@@ -863,6 +942,70 @@ static void manual_recovery_screen_tests(void)
MOCK_IGNORE, 3, MOCK_IGNORE);
DISPLAYED_NO_EXTRA();
+ /* Advanced options screen */
+ reset_common_data(FOR_MANUAL_RECOVERY);
+ /* #0: Language menu */
+ add_mock_keypress(VB_KEY_DOWN);
+ add_mock_keypress(VB_KEY_DOWN);
+ add_mock_keypress(VB_KEY_ENTER);
+ add_mock_keypress(VB_KEY_UP);
+ add_mock_keypress(VB_KEY_ENTER);
+ /* #1: Enable dev mode */
+ add_mock_keypress(VB_KEY_ESC);
+ add_mock_keypress(VB_KEY_DOWN);
+ add_mock_keypress(VB_KEY_DOWN);
+ add_mock_keypress(VB_KEY_ENTER);
+ add_mock_keypress(VB_KEY_ENTER);
+ /* #2: Back */
+ add_mock_keypress(VB_KEY_ESC);
+ add_mock_keypress(VB_KEY_DOWN);
+ add_mock_keypress(VB_KEY_DOWN);
+ add_mock_keypress(VB_KEY_ENTER);
+ add_mock_keypress(VB_KEY_DOWN);
+ add_mock_keypress(VB_KEY_ENTER);
+ /* End of menu */
+ add_mock_keypress(VB_KEY_DOWN);
+ add_mock_keypress(VB_KEY_DOWN);
+ add_mock_keypress(VB_KEY_ENTER);
+ add_mock_keypress(VB_KEY_DOWN);
+ add_mock_keypress(VB_KEY_DOWN); /* Blocked */
+ extend_calls_until_shutdown();
+ TEST_EQ(vb2_manual_recovery_menu(ctx), VB2_REQUEST_SHUTDOWN,
+ "advanced options screen");
+ DISPLAYED_PASS();
+ DISPLAYED_PASS();
+ DISPLAYED_PASS();
+ /* #0: Language menu */
+ DISPLAYED_PASS();
+ DISPLAYED_EQ("advanced options", VB2_SCREEN_ADVANCED_OPTIONS,
+ MOCK_IGNORE, 0, 0x0);
+ DISPLAYED_EQ("#0: language menu", VB2_SCREEN_LANGUAGE_SELECT,
+ MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE);
+ /* #1: Enable dev mode */
+ DISPLAYED_PASS();
+ DISPLAYED_PASS();
+ DISPLAYED_PASS();
+ DISPLAYED_EQ("advanced options", VB2_SCREEN_ADVANCED_OPTIONS,
+ MOCK_IGNORE, 1, 0x0);
+ DISPLAYED_EQ("#1: enable dev mode", VB2_SCREEN_RECOVERY_TO_DEV,
+ MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE);
+ /* #2: Back */
+ DISPLAYED_PASS();
+ DISPLAYED_PASS();
+ DISPLAYED_PASS();
+ DISPLAYED_PASS();
+ DISPLAYED_EQ("advanced options", VB2_SCREEN_ADVANCED_OPTIONS,
+ MOCK_IGNORE, 2, 0x0);
+ DISPLAYED_EQ("#2: back", VB2_SCREEN_RECOVERY_SELECT,
+ MOCK_IGNORE, MOCK_IGNORE, MOCK_IGNORE);
+ /* End of menu */
+ DISPLAYED_PASS();
+ DISPLAYED_PASS();
+ DISPLAYED_PASS();
+ DISPLAYED_EQ("end of menu", VB2_SCREEN_ADVANCED_OPTIONS,
+ MOCK_IGNORE, 2, 0x0);
+ DISPLAYED_NO_EXTRA();
+
VB2_DEBUG("...done.\n");
}