1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-28 23:43:42 +02:00

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 tests worked before, without the wrap: my understanding is that
real libusb_init was called for dediprog test? Given that tests
definitely should not call any real libusb functions, wrap is needed.

BUG=b:181803212
TEST=builds and ninja test

Change-Id: I51c9cb96db1afb3298f4d098df96509d3cb3c046
Signed-off-by: Anastasia Klimchuk <aklm@chromium.org>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/57917
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
Anastasia Klimchuk 2021-09-24 16:05:35 +10:00 committed by Nico Huber
parent a7a59cf0bb
commit 92989f2496
4 changed files with 18 additions and 0 deletions

View File

@ -54,6 +54,13 @@ void nicrealtek_init_and_shutdown_test_success(void **state)
#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 @@ void dediprog_init_and_shutdown_test_success(void **state)
{
#if CONFIG_DEDIPROG == 1
const struct io_mock dediprog_io = {
.libusb_init = dediprog_libusb_init,
.libusb_control_transfer = dediprog_libusb_control_transfer,
};

View File

@ -70,6 +70,7 @@ struct io_mock {
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,

View File

@ -23,6 +23,14 @@ void *__wrap_usb_dev_get_by_vid_pid_number(
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;

View File

@ -64,6 +64,7 @@ mocks = [
'-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',