1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-28 07:23:43 +02:00
flashrom/tests/libusb_wraps.h
Anastasia Klimchuk 06e73a8e61 tests: Make libusb conditional dependency for unit tests
Unit tests had an unconditional dependency on libusb and this was
a) strictly speaking not needed, b) blocking one build system effort.
This patch is a temporary solution to unblock one build system effort,
specifically CB:63724. It creates a condition so that libusb is only
included when it is required, not always.

This workaround is based on the fact that at the moment only
2 lifecycle unit tests are using libusb symbols: dediprog and
raiden_debug.

BUG=b:237606255
TEST=the following scenarios run tests successfully

1) dediprog and raiden_debug programmers enabled, libusb.h present
result:
all test run and pass

2) dediprog disabled, libusb.h present
result:
dediprog test skipped, all other tests run and pass

3) dediprog and raiden_debug both disabled,
libusb.h changed to libusbabcd.h
result:
dediprog and raiden_debug tests are skipped,
all other tests run and pass

Change-Id: Iec8a1826951fd6ae586e90fde1a55170e7de41a8
Signed-off-by: Anastasia Klimchuk <aklm@chromium.org>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/65627
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <felixsinger@posteo.net>
Reviewed-by: Thomas Heijligen <src@posteo.de>
2022-07-10 22:29:04 +00:00

47 lines
2.3 KiB
C

/*
* This file is part of the flashrom project.
*
* Copyright 2022 Google LLC
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef LIBUSB_WRAPS_H
#define LIBUSB_WRAPS_H
#include "usb_unittests.h"
void *__wrap_usb_dev_get_by_vid_pid_number(
libusb_context *usb_ctx, uint16_t vid, uint16_t pid, unsigned int num);
int __wrap_libusb_init(libusb_context **ctx);
int __wrap_libusb_open(libusb_device *dev, libusb_device_handle **devh);
int __wrap_libusb_set_auto_detach_kernel_driver(libusb_device_handle *devh, int enable);
ssize_t __wrap_libusb_get_device_list(libusb_context *ctx, libusb_device ***list);
void __wrap_libusb_free_device_list(libusb_device **list, int unref_devices);
uint8_t __wrap_libusb_get_bus_number(libusb_device *dev);
uint8_t __wrap_libusb_get_device_address(libusb_device *dev);
int __wrap_libusb_get_device_descriptor(libusb_device *dev, struct libusb_device_descriptor *desc);
int __wrap_libusb_get_config_descriptor(
libusb_device *dev, uint8_t config_index, struct libusb_config_descriptor **config);
void __wrap_libusb_free_config_descriptor(struct libusb_config_descriptor *config);
int __wrap_libusb_get_configuration(libusb_device_handle *devh, int *config);
int __wrap_libusb_set_configuration(libusb_device_handle *devh, int config);
int __wrap_libusb_claim_interface(libusb_device_handle *devh, int interface_number);
int __wrap_libusb_control_transfer(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);
int __wrap_libusb_release_interface(libusb_device_handle *devh, int interface_number);
void __wrap_libusb_close(libusb_device_handle *devh);
libusb_device *__wrap_libusb_ref_device(libusb_device *dev);
void __wrap_libusb_unref_device(libusb_device *dev);
void __wrap_libusb_exit(libusb_context *ctx);
#endif /* LIBUSB_WRAPS_H */