diff options
author | Anastasia Klimchuk <aklm@chromium.org> | 2021-06-30 09:26:59 +1000 |
---|---|---|
committer | Edward O'Callaghan <quasisec@chromium.org> | 2021-07-19 03:23:04 +0000 |
commit | 02bc0b2c53d1c20d676ac11bbfa84f42d2fb070c (patch) | |
tree | 0848b8d031d5973a367b467b0cb0977afb47546b /tests/init_shutdown.c | |
parent | 942004398632e8e71e2b29ee476233be569615ba (diff) | |
download | flashrom-02bc0b2c53d1c20d676ac11bbfa84f42d2fb070c.tar.gz flashrom-02bc0b2c53d1c20d676ac11bbfa84f42d2fb070c.tar.bz2 flashrom-02bc0b2c53d1c20d676ac11bbfa84f42d2fb070c.zip |
dediprog: Init-shutdown test for dediprog
This patch adds mocks for libusb functions. To avoid dependency on
libusb.h, libusb symbols for context and device handle are redefined.
Real libusb functions are never called in tests anyway, cmocka wraps
work with this without complaints.
BUG=b:181803212
TEST=builds and ninja test
Change-Id: I38508dfb6d7c24d42522f22fcae0c5e410c5f7ea
Signed-off-by: Anastasia Klimchuk <aklm@chromium.org>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/55934
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Diffstat (limited to 'tests/init_shutdown.c')
-rw-r--r-- | tests/init_shutdown.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/init_shutdown.c b/tests/init_shutdown.c index 48448f8cc..84699025b 100644 --- a/tests/init_shutdown.c +++ b/tests/init_shutdown.c @@ -85,6 +85,40 @@ void mec1308_init_and_shutdown_test_success(void **state) #endif } +int dediprog_libusb_control_transfer(void *state, + libusb_device_handle *devh, + uint8_t bmRequestType, + uint8_t bRequest, + uint16_t wValue, + uint16_t wIndex, + unsigned char *data, + uint16_t wLength, + unsigned int timeout) +{ + if (bRequest == 0x08 /* dediprog_cmds CMD_READ_PROG_INFO */) { + /* Provide dediprog Device String into data buffer */ + memcpy(data, "SF600 V:7.2.2 ", wLength); + } + return wLength; +} + +void dediprog_init_and_shutdown_test_success(void **state) +{ +#if CONFIG_DEDIPROG == 1 + const struct io_mock dediprog_io = { + .libusb_control_transfer = dediprog_libusb_control_transfer, + }; + + io_mock_register(&dediprog_io); + + run_lifecycle(state, &programmer_dediprog, "voltage=3.5V"); + + io_mock_register(NULL); +#else + skip(); +#endif +} + struct ene_lpc_io_state { unsigned char outb_val; int pause_cmd; |