summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHsuan Ting Chen <roccochen@chromium.org>2020-10-30 16:28:01 +0800
committerCommit Bot <commit-bot@chromium.org>2020-11-12 12:40:01 +0000
commit7991ecdb219a5290e2e5a9663b19fce8e5b15145 (patch)
treec29e14c60f3eab41e6da8b0464262eb053cc54fc
parent10343b821fbc1e1ff9db19af45c9c0827389df7f (diff)
downloadvboot-7991ecdb219a5290e2e5a9663b19fce8e5b15145.tar.gz
vboot/ui/tests: Remove unnecessary aborting delay check
- Do not check if delay is aborted every time since we already have an individual test item. - Do not save the last return value of vb2ex_mtime() to allow us to use vb2ex_mtime() elsewhere. - Use fuzzy match for `delay finished` test items. BUG=b:156448738 BRANCH=none TEST=CC=x86_64-pc-linux-gnu-clang; make clean && make runtests Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org> Change-Id: Ic211955637c67dc35ffd4c12194a8ccb77e1bf9c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2508104 Reviewed-by: Joel Kitching <kitching@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
-rw-r--r--tests/vb2_ui_tests.c66
1 files changed, 27 insertions, 39 deletions
diff --git a/tests/vb2_ui_tests.c b/tests/vb2_ui_tests.c
index 890c3e66..9d0642af 100644
--- a/tests/vb2_ui_tests.c
+++ b/tests/vb2_ui_tests.c
@@ -18,7 +18,7 @@
/* Fixed value for ignoring some checks */
#define MOCK_IGNORE 0xffffu
-/* Fuzzy matches for beep time */
+/* Fuzzy matches for check_time() */
#define FUZZ_MS 200
/* Mock data */
@@ -65,7 +65,6 @@ static uint32_t mock_key[64];
static int mock_key_trusted[64];
static int mock_key_total;
-static uint32_t mock_get_timer_last_ms;
static uint32_t mock_time_ms;
static const uint32_t mock_time_start_ms = 31ULL * VB2_MSEC_PER_SEC;
@@ -247,6 +246,13 @@ static void expect_beep(uint32_t msec,
};
}
+/* Check if the result time falls in range [expected, expected + FUZZ_MS) */
+static void check_time(uint32_t result, uint32_t expected, const char *desc)
+{
+ TEST_TRUE(result >= expected, desc);
+ TEST_TRUE(result - expected < FUZZ_MS, " within FUZZ_MS");
+}
+
/* Type of test to reset for */
enum reset_type {
FOR_DEVELOPER,
@@ -301,7 +307,6 @@ static void reset_common_data(enum reset_type t)
mock_key_total = 0;
/* For vb2ex_mtime and vb2ex_msleep */
- mock_get_timer_last_ms = 0;
mock_time_ms = mock_time_start_ms;
/* For vb2ex_beep */
@@ -438,7 +443,6 @@ uint32_t VbExKeyboardReadWithFlags(uint32_t *key_flags)
uint32_t vb2ex_mtime(void)
{
- mock_get_timer_last_ms = mock_time_ms;
return mock_time_ms;
}
@@ -467,10 +471,8 @@ void vb2ex_beep(uint32_t msec, uint32_t frequency)
TEST_EQ(msec, beep->msec, " beep duration");
TEST_EQ(frequency, beep->frequency, " beep frequency");
- TEST_TRUE(cur_time >= beep->time_expected,
- " beep started after expected time");
- TEST_TRUE(cur_time - beep->time_expected < FUZZ_MS,
- " beep started within FUZZ_MS");
+ check_time(cur_time, beep->time_expected,
+ " beep started after expected time");
}
mock_time_ms += msec;
@@ -590,8 +592,8 @@ static void developer_tests(void)
expect_beep(250, 400, DEV_DELAY_BEEP2_MS);
TEST_EQ(vb2_developer_menu(ctx), VB2_SUCCESS,
"proceed to internal disk after timeout");
- TEST_TRUE(mock_get_timer_last_ms - mock_time_start_ms >=
- DEV_DELAY_NORMAL_MS, " finished delay");
+ check_time(mock_time_ms - mock_time_start_ms, DEV_DELAY_NORMAL_MS,
+ " finished delay");
TEST_EQ(mock_beep_count, 2, " beeped twice");
TEST_TRUE(mock_iters >= mock_vbtlk_total, " used up mock_vbtlk");
@@ -601,10 +603,8 @@ static void developer_tests(void)
add_mock_vbtlk(VB2_SUCCESS, VB_DISK_FLAG_FIXED);
TEST_EQ(vb2_developer_menu(ctx), VB2_SUCCESS,
"use short delay");
- TEST_TRUE(mock_get_timer_last_ms - mock_time_start_ms >=
- DEV_DELAY_SHORT_MS, " finished delay");
- TEST_TRUE(mock_get_timer_last_ms - mock_time_start_ms <
- DEV_DELAY_NORMAL_MS, " not a 30s delay");
+ check_time(mock_time_ms - mock_time_start_ms, DEV_DELAY_SHORT_MS,
+ " finished delay");
TEST_EQ(mock_beep_count, 0, " never beeped");
/* Stop timer on any user input: normal delay */
@@ -613,6 +613,8 @@ static void developer_tests(void)
add_mock_vbtlk(VB2_SUCCESS, VB_DISK_FLAG_FIXED);
TEST_EQ(vb2_developer_menu(ctx), VB2_REQUEST_SHUTDOWN,
"stop timer on any user input: normal delay");
+ TEST_TRUE(mock_time_ms - mock_time_start_ms > DEV_DELAY_NORMAL_MS,
+ " delay aborted");
TEST_EQ(mock_calls_until_shutdown, 0, " loop forever");
TEST_EQ(mock_beep_count, 0, " never beeped");
@@ -623,6 +625,8 @@ static void developer_tests(void)
add_mock_vbtlk(VB2_SUCCESS, VB_DISK_FLAG_FIXED);
TEST_EQ(vb2_developer_menu(ctx), VB2_REQUEST_SHUTDOWN,
"stop timer on any user input: short delay");
+ TEST_TRUE(mock_time_ms - mock_time_start_ms > DEV_DELAY_SHORT_MS,
+ " delay aborted");
TEST_EQ(mock_calls_until_shutdown, 0, " loop forever");
TEST_EQ(mock_beep_count, 0, " never beeped");
@@ -638,8 +642,13 @@ static void developer_tests(void)
add_mock_vbtlk(VB2_SUCCESS, VB_DISK_FLAG_FIXED);
TEST_EQ(vb2_developer_menu(ctx), VB2_SUCCESS,
"select boot internal in dev menu");
- TEST_TRUE(mock_get_timer_last_ms - mock_time_start_ms <
- DEV_DELAY_NORMAL_MS, " delay aborted");
+
+ /* Ctrl+U = boot external */
+ reset_common_data(FOR_DEVELOPER);
+ add_mock_keypress(VB_KEY_CTRL('U'));
+ add_mock_vbtlk(VB2_SUCCESS, VB_DISK_FLAG_REMOVABLE);
+ TEST_EQ(vb2_developer_menu(ctx), VB2_SUCCESS,
+ "ctrl+u = boot external");
/* Ctrl+D = boot internal */
reset_common_data(FOR_DEVELOPER);
@@ -647,8 +656,6 @@ static void developer_tests(void)
add_mock_vbtlk(VB2_SUCCESS, VB_DISK_FLAG_FIXED);
TEST_EQ(vb2_developer_menu(ctx), VB2_SUCCESS,
"ctrl+d = boot internal");
- TEST_TRUE(mock_get_timer_last_ms - mock_time_start_ms <
- DEV_DELAY_NORMAL_MS, " delay aborted");
/* VB_BUTTON_VOL_DOWN_LONG_PRESS = boot internal */
if (DETACHABLE) {
@@ -657,8 +664,6 @@ static void developer_tests(void)
add_mock_vbtlk(VB2_SUCCESS, VB_DISK_FLAG_FIXED);
TEST_EQ(vb2_developer_menu(ctx), VB2_SUCCESS,
"VB_BUTTON_VOL_DOWN_LONG_PRESS = boot internal");
- TEST_TRUE(mock_get_timer_last_ms - mock_time_start_ms <
- DEV_DELAY_NORMAL_MS, " delay aborted");
}
/* Proceed to external disk after timeout */
@@ -669,8 +674,8 @@ static void developer_tests(void)
expect_beep(250, 400, DEV_DELAY_BEEP2_MS);
TEST_EQ(vb2_developer_menu(ctx), VB2_SUCCESS,
"proceed to external disk after timeout");
- TEST_TRUE(mock_get_timer_last_ms - mock_time_start_ms >=
- DEV_DELAY_NORMAL_MS, " finished delay");
+ check_time(mock_time_ms - mock_time_start_ms, DEV_DELAY_NORMAL_MS,
+ " finished delay");
TEST_EQ(mock_beep_count, 2, " beeped twice");
TEST_TRUE(mock_iters >= mock_vbtlk_total, " used up mock_vbtlk");
@@ -695,17 +700,6 @@ static void developer_tests(void)
mock_default_boot = VB2_DEV_DEFAULT_BOOT_TARGET_EXTERNAL;
TEST_EQ(vb2_developer_menu(ctx), VB2_SUCCESS,
"select boot external in dev menu");
- TEST_TRUE(mock_get_timer_last_ms - mock_time_start_ms <
- DEV_DELAY_NORMAL_MS, " delay aborted");
-
- /* Ctrl+U = boot external */
- reset_common_data(FOR_DEVELOPER);
- add_mock_keypress(VB_KEY_CTRL('U'));
- add_mock_vbtlk(VB2_SUCCESS, VB_DISK_FLAG_REMOVABLE);
- TEST_EQ(vb2_developer_menu(ctx), VB2_SUCCESS,
- "ctrl+u = boot external");
- TEST_TRUE(mock_get_timer_last_ms - mock_time_start_ms <
- DEV_DELAY_NORMAL_MS, " delay aborted");
/* Ctrl+L = boot legacy (allowed) */
reset_common_data(FOR_DEVELOPER);
@@ -714,8 +708,6 @@ static void developer_tests(void)
TEST_EQ(vb2_developer_menu(ctx), VB2_REQUEST_SHUTDOWN,
"ctrl+l = boot legacy");
TEST_EQ(mock_vbexlegacy_called, 1, " VbExLegacy called");
- TEST_TRUE(mock_get_timer_last_ms - mock_time_start_ms <
- DEV_DELAY_NORMAL_MS, " delay aborted");
/* Ctrl+L = boot legacy (disallowed) */
reset_common_data(FOR_DEVELOPER);
@@ -723,8 +715,6 @@ static void developer_tests(void)
TEST_EQ(vb2_developer_menu(ctx), VB2_REQUEST_SHUTDOWN,
"ctrl+l = boot legacy");
TEST_EQ(mock_vbexlegacy_called, 0, " VbExLegacy not called");
- TEST_TRUE(mock_get_timer_last_ms - mock_time_start_ms <
- DEV_DELAY_NORMAL_MS, " delay aborted");
/* VB_BUTTON_VOL_UP_LONG_PRESS = boot external */
if (DETACHABLE) {
@@ -733,8 +723,6 @@ static void developer_tests(void)
add_mock_vbtlk(VB2_SUCCESS, VB_DISK_FLAG_REMOVABLE);
TEST_EQ(vb2_developer_menu(ctx), VB2_SUCCESS,
"VB_BUTTON_VOL_UP_LONG_PRESS = boot external");
- TEST_TRUE(mock_get_timer_last_ms - mock_time_start_ms <
- DEV_DELAY_NORMAL_MS, " delay aborted");
}
/* If dev mode is disabled, goes to to_norm screen repeatedly */