| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include <stddef.h> |
| #include <stdint.h> |
| |
| #include "base/at_exit.h" |
| #include "base/bind.h" |
| #include "base/i18n/icu_util.h" |
| #include "device/usb/fake_usb_device_handle.h" |
| #include "device/usb/webusb_descriptors.h" |
| |
| struct TestCase { |
| TestCase() { CHECK(base::i18n::InitializeICU()); } |
| |
| // used by ICU integration. |
| base::AtExitManager at_exit_manager; |
| }; |
| |
| TestCase* test_case = new TestCase(); |
| |
| namespace device { |
| |
| void Done(std::unique_ptr<WebUsbAllowedOrigins> allowed_origins, |
| const GURL& landing_page) {} |
| |
| extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { |
| scoped_refptr<UsbDeviceHandle> device_handle = |
| new FakeUsbDeviceHandle(data, size); |
| ReadWebUsbDescriptors(device_handle, base::Bind(&Done)); |
| return 0; |
| } |
| |
| } // namespace device |