diff options
author | Yunlian Jiang <yunlian@google.com> | 2015-06-09 16:21:56 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-06-11 18:27:24 +0000 |
commit | 637ff03502f3511d90e8d79cc1c52b3be01d6cd3 (patch) | |
tree | 8398811b813ebc297c9a3774d5bff560b2d64ef1 | |
parent | d7f0f93fa878e6dd7435adbe034e1fc7474f94b0 (diff) | |
download | vboot-637ff03502f3511d90e8d79cc1c52b3be01d6cd3.tar.gz |
vboot_reference: fix unittest when building with clang.
When linking vboot_api_kernel4_tests, there are two VbBootNormal()
available, the gcc chooses the one in vboot_api_kernel4_tests.c and
the test passes, the clang chooses the one in vboot_api_kernel.c and
make the unittest fail. This CL makes the one in vboot_api_kernel.c
a weak symbol so that clang can choose the one in
vboot_api_kernel4_tests.c
BUG=chromium:498469
BRANCH=none
TEST=CC=x86_64-cros-linux-gnu-clang FEATURES='test'
emerge-amd64-generic vboot_reference
Change-Id: Ibcb78ee055fc9485dbc2bcc1d1cf98144a1a3b64
Reviewed-on: https://chromium-review.googlesource.com/276504
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Commit-Queue: Yunlian Jiang <yunlian@chromium.org>
Tested-by: Yunlian Jiang <yunlian@chromium.org>
-rw-r--r-- | firmware/include/vboot_api.h | 5 | ||||
-rw-r--r-- | firmware/lib/vboot_api_kernel.c | 3 | ||||
-rw-r--r-- | firmware/stub/vboot_api_stub_init.c | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/firmware/include/vboot_api.h b/firmware/include/vboot_api.h index 53105407..7e94773e 100644 --- a/firmware/include/vboot_api.h +++ b/firmware/include/vboot_api.h @@ -37,6 +37,11 @@ typedef uint32_t VbError_t; /* + * Define test_mockable for mocking functions. + */ +#define test_mockable __attribute__((weak)) + +/* * Predefined error numbers. Success is 0. Errors are non-zero, but differ * between functions. For example, the TPM functions may pass through TPM * error codes, some of which may be recoverable. diff --git a/firmware/lib/vboot_api_kernel.c b/firmware/lib/vboot_api_kernel.c index 0fd1fa3e..312014bd 100644 --- a/firmware/lib/vboot_api_kernel.c +++ b/firmware/lib/vboot_api_kernel.c @@ -238,7 +238,8 @@ int VbUserConfirms(VbCommonParams *cparams, uint32_t confirm_flags) return -1; } -VbError_t VbBootNormal(VbCommonParams *cparams, LoadKernelParams *p) +VbError_t test_mockable +VbBootNormal(VbCommonParams *cparams, LoadKernelParams *p) { /* Boot from fixed disk only */ VBDEBUG(("Entering %s()\n", __func__)); diff --git a/firmware/stub/vboot_api_stub_init.c b/firmware/stub/vboot_api_stub_init.c index 9e4f6370..34387837 100644 --- a/firmware/stub/vboot_api_stub_init.c +++ b/firmware/stub/vboot_api_stub_init.c @@ -61,7 +61,7 @@ uint64_t VbExGetTimer(void) return (uint64_t)tv.tv_sec * 1000000 + (uint64_t)tv.tv_usec; } -VbError_t VbExNvStorageRead(uint8_t *buf) +VbError_t test_mockable VbExNvStorageRead(uint8_t *buf) { return VBERROR_SUCCESS; } |