From c79050aa44b8836d836c5dd22a383a073c28b74b Mon Sep 17 00:00:00 2001 From: nicoo Date: Wed, 12 Feb 2020 13:42:22 +0100 Subject: Import upstream release 1.3.0 Closes: #951184 --- regress/dev.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 regress/dev.c (limited to 'regress/dev.c') diff --git a/regress/dev.c b/regress/dev.c new file mode 100644 index 0000000..39b3584 --- /dev/null +++ b/regress/dev.c @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2019 Yubico AB. All rights reserved. + * Use of this source code is governed by a BSD-style + * license that can be found in the LICENSE file. + */ + +#include +#include + +#define FAKE_DEV_HANDLE ((void *)0xdeadbeef) +#define REPORT_LEN (64 + 1) + +static void * +dummy_open(const char *path) +{ + (void)path; + + return (FAKE_DEV_HANDLE); +} + +static void +dummy_close(void *handle) +{ + assert(handle == FAKE_DEV_HANDLE); +} + +static int +dummy_read(void *handle, unsigned char *ptr, size_t len, int ms) +{ + (void)ptr; + (void)len; + (void)ms; + + assert(handle == FAKE_DEV_HANDLE); + + return (-1); +} + +static int +dummy_write(void *handle, const unsigned char *ptr, size_t len) +{ + assert(handle == FAKE_DEV_HANDLE); + assert(ptr != NULL); + assert(len == REPORT_LEN); + + return ((int)len); +} + +/* gh#56 */ +static void +open_iff_ok(void) +{ + fido_dev_t *dev = NULL; + fido_dev_io_t io; + + io.open = dummy_open; + io.close = dummy_close; + io.read = dummy_read; + io.write = dummy_write; + + assert((dev = fido_dev_new()) != NULL); + assert(fido_dev_set_io_functions(dev, &io) == FIDO_OK); + assert(fido_dev_open(dev, "dummy") == FIDO_ERR_RX); + assert(fido_dev_close(dev) == FIDO_ERR_INVALID_ARGUMENT); + + fido_dev_free(&dev); +} + +int +main(void) +{ + fido_init(0); + + open_iff_ok(); + + exit(0); +} -- cgit v1.2.3