summaryrefslogtreecommitdiff
path: root/tests/vboot_api_kernel4_tests.c
diff options
context:
space:
mode:
authorChromeOS Developer <rspangler@chromium.org>2016-10-31 16:19:20 -0700
committerchrome-bot <chrome-bot@chromium.org>2017-01-12 15:56:22 -0800
commit284bf5549a4df474534f288902db489902407830 (patch)
tree35a57427366db7dfdff622b439b0709371726005 /tests/vboot_api_kernel4_tests.c
parentd1408000508eb4d80e6d499da4530bb6251b3509 (diff)
downloadvboot-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.c14
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;