sanei_usb: Add support for replay testing

merge-requests/92/head
Povilas Kanapickas 2019-04-27 12:16:10 +03:00
rodzic a88b6241cd
commit 0122c060b7
3 zmienionych plików z 1112 dodań i 10 usunięć

Wyświetl plik

@ -139,6 +139,8 @@ posix_dlsym (void *handle, const char *func)
#define DLL_CONFIG_FILE "dll.conf"
#define DLL_ALIASES_FILE "dll.aliases"
#include "../include/sane/sanei_usb.h"
enum SANE_Ops
{
OP_INIT = 0,
@ -1177,7 +1179,18 @@ sane_open (SANE_String_Const full_name, SANE_Handle * meta_handle)
}
dev_name = strchr (full_name, ':');
if (dev_name)
if (dev_name && strncmp(full_name, "fakeusb", dev_name - full_name) == 0)
{
++dev_name; // skip colon
status = sanei_usb_testing_enable_replay(dev_name);
if (status != SANE_STATUS_GOOD)
return status;
be_name = sanei_usb_testing_get_backend();
if (be_name == NULL)
return SANE_STATUS_ACCESS_DENIED;
}
else if (dev_name)
{
be_name = strndup(full_name, dev_name - full_name);
++dev_name; /* skip colon */

Wyświetl plik

@ -180,6 +180,27 @@ struct sanei_usb_dev_descriptor
SANE_Byte max_packet_size;
};
/** Initialize sanei_usb for replay testing.
*
* Initializes sanei_usb for testing by mocking whole USB stack. This function
* must be called before sanei_usb_init().
*/
extern SANE_Status sanei_usb_testing_enable_replay(SANE_String_Const path);
/** Initialize sanei_usb for recording.
*
* Initializes sanei_usb for recording communication with the scanner. This
* function must be called before sanei_usb_init().
*/
extern SANE_Status sanei_usb_testing_enable_record(SANE_String_Const path);
/** Returns backend name for testing.
*
* Returns backend name for the file registered in sanei_usb_testing_enable.
* The caller is responsible for freeing it.
*/
extern SANE_String sanei_usb_testing_get_backend();
/** Initialize sanei_usb.
*
* Call this before any other sanei_usb function.

Plik diff jest za duży Load Diff