Anastasia Klimchuk has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/57917 )
Change subject: tests: Add wrap for libusb_init and use it in dediprog test ......................................................................
tests: Add wrap for libusb_init and use it in dediprog test
Missing wrap for libusb_init has been discovered while working on the test for raiden_debug_spi. Both dediprog (existing test) and raiden_debug_spi (new test, see later in this chain) are using libusb_init, so it definitely needs to be wrapped and added to io_mock.
Why it worked before: my understanding is that real libusb_init was called for dediprog? Looks like it worked by coincidence.
BUG=b:181803212 TEST=builds and ninja test
Change-Id: I51c9cb96db1afb3298f4d098df96509d3cb3c046 Signed-off-by: Anastasia Klimchuk aklm@chromium.org --- M tests/init_shutdown.c M tests/io_mock.h M tests/libusb_wraps.c M tests/meson.build 4 files changed, 18 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/17/57917/1
diff --git a/tests/init_shutdown.c b/tests/init_shutdown.c index 03e888f..e64e58c 100644 --- a/tests/init_shutdown.c +++ b/tests/init_shutdown.c @@ -54,6 +54,13 @@ #endif }
+ +int dediprog_libusb_init(void *state, libusb_context **ctx) +{ + *ctx = not_null(); + return 0; +} + int dediprog_libusb_control_transfer(void *state, libusb_device_handle *devh, uint8_t bmRequestType, @@ -75,6 +82,7 @@ { #if CONFIG_DEDIPROG == 1 const struct io_mock dediprog_io = { + .libusb_init = dediprog_libusb_init, .libusb_control_transfer = dediprog_libusb_control_transfer, };
diff --git a/tests/io_mock.h b/tests/io_mock.h index 3ef61a5..237238c 100644 --- a/tests/io_mock.h +++ b/tests/io_mock.h @@ -75,6 +75,7 @@ unsigned int (*inl)(void *state, unsigned short port);
/* USB I/O */ + int (*libusb_init)(void *state, libusb_context **ctx); int (*libusb_control_transfer)(void *state, libusb_device_handle *devh, uint8_t bmRequestType, diff --git a/tests/libusb_wraps.c b/tests/libusb_wraps.c index 94ef652..978108e 100644 --- a/tests/libusb_wraps.c +++ b/tests/libusb_wraps.c @@ -23,6 +23,14 @@ return not_null(); }
+int __wrap_libusb_init(libusb_context **ctx) +{ + LOG_ME; + if (get_io() && get_io()->libusb_init) + return get_io()->libusb_init(get_io()->state, ctx); + return 0; +} + int __wrap_libusb_set_configuration(libusb_device_handle *devh, int config) { LOG_ME; diff --git a/tests/meson.build b/tests/meson.build index 955f3bf..9179258 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -58,6 +58,7 @@ '-Wl,--wrap=test_outl', '-Wl,--wrap=test_inl', '-Wl,--wrap=usb_dev_get_by_vid_pid_number', + '-Wl,--wrap=libusb_init', '-Wl,--wrap=libusb_set_configuration', '-Wl,--wrap=libusb_claim_interface', '-Wl,--wrap=libusb_control_transfer',