diff options
author | ChromeOS Developer <rspangler@chromium.org> | 2016-10-31 16:19:20 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-01-12 15:56:22 -0800 |
commit | 284bf5549a4df474534f288902db489902407830 (patch) | |
tree | 35a57427366db7dfdff622b439b0709371726005 /tests/vboot_api_kernel4_tests.c | |
parent | d1408000508eb4d80e6d499da4530bb6251b3509 (diff) | |
download | vboot-284bf5549a4df474534f288902db489902407830.tar.gz |
firmware: Refactor and clean up ec_sync
Previously, the EC software sync process called VbDisplayScreen() from
several function calls deep. Refactor software sync so that the UI
decisions are at a higher level (in ec_sync_all.c) and isolated from
the low-level EC software sync functionality (in ec_sync.c).
This is one in a series of changes which are more clearly separating
out the UI, to make it easier to support multiple UI across a range of
devices.
BUG=chromium:611535
BRANCH=none
TEST=make runtests; build_packages --board=reef chromeos-firmware; boot reef
Change-Id: I40597abeb5b0cc8f5d8fc2098e4acbed4bf59bf6
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/411921
Reviewed-by: Shelley Chen <shchen@chromium.org>
Diffstat (limited to 'tests/vboot_api_kernel4_tests.c')
-rw-r--r-- | tests/vboot_api_kernel4_tests.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/tests/vboot_api_kernel4_tests.c b/tests/vboot_api_kernel4_tests.c index decc7137..0b1223d7 100644 --- a/tests/vboot_api_kernel4_tests.c +++ b/tests/vboot_api_kernel4_tests.c @@ -9,6 +9,7 @@ #include <stdio.h> #include <stdlib.h> +#include "ec_sync.h" #include "gbb_header.h" #include "host_common.h" #include "load_kernel_fw.h" @@ -81,8 +82,7 @@ VbError_t VbExNvStorageWrite(const uint8_t *buf) return VBERROR_SUCCESS; } -VbError_t VbEcSoftwareSync(struct vb2_context *ctx, int devidx, - VbCommonParams *cparams) +VbError_t VbExEcRunningRW(int devidx, int *in_rw) { return ecsync_retval; } @@ -160,16 +160,22 @@ static void VbSlkTest(void) ResetMocks(); test_slk(0, 0, "Normal"); - /* Software sync */ + /* Mock error early in software sync */ ResetMocks(); shared->flags |= VBSD_EC_SOFTWARE_SYNC; ecsync_retval = VBERROR_SIMULATED; - test_slk(VBERROR_SIMULATED, 0, "EC sync bad"); + test_slk(VBERROR_EC_REBOOT_TO_RO_REQUIRED, + VBNV_RECOVERY_EC_UNKNOWN_IMAGE, "EC sync bad"); + /* + * If shared->flags doesn't ask for software sync, we won't notice + * that error. + */ ResetMocks(); ecsync_retval = VBERROR_SIMULATED; test_slk(0, 0, "EC sync not done"); + /* Same if shared->flags asks for sync, but it's overridden by GBB */ ResetMocks(); shared->flags |= VBSD_EC_SOFTWARE_SYNC; gbb.flags |= GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC; |