summaryrefslogtreecommitdiffstats
path: root/tests/init_shutdown.c
diff options
context:
space:
mode:
authorAnastasia Klimchuk <aklm@chromium.org>2021-06-30 09:26:59 +1000
committerEdward O'Callaghan <quasisec@chromium.org>2021-07-19 03:23:04 +0000
commit02bc0b2c53d1c20d676ac11bbfa84f42d2fb070c (patch)
tree0848b8d031d5973a367b467b0cb0977afb47546b /tests/init_shutdown.c
parent942004398632e8e71e2b29ee476233be569615ba (diff)
downloadflashrom-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.c34
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;