| /* |
| * This file is part of the flashrom project. |
| * |
| * Copyright 2021 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. |
| */ |
| |
| #include "lifecycle.h" |
| |
| #if CONFIG_DEDIPROG == 1 |
| static int dediprog_libusb_init(void *state, libusb_context **ctx) |
| { |
| *ctx = not_null(); |
| return 0; |
| } |
| |
| static int dediprog_libusb_control_transfer(void *state, |
| 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) |
| { |
| if (bRequest == 0x08 /* dediprog_cmds CMD_READ_PROG_INFO */) { |
| /* Provide dediprog Device String into data buffer */ |
| memcpy(data, "SF600 V:7.2.2 ", wLength); |
| } |
| return wLength; |
| } |
| |
| void dediprog_basic_lifecycle_test_success(void **state) |
| { |
| struct io_mock_fallback_open_state dediprog_fallback_open_state = { |
| .noc = 0, |
| .paths = { NULL }, |
| }; |
| const struct io_mock dediprog_io = { |
| .libusb_init = dediprog_libusb_init, |
| .libusb_control_transfer = dediprog_libusb_control_transfer, |
| .fallback_open_state = &dediprog_fallback_open_state, |
| }; |
| |
| run_basic_lifecycle(state, &dediprog_io, &programmer_dediprog, "voltage=3.5V"); |
| } |
| #else |
| SKIP_TEST(dediprog_basic_lifecycle_test_success) |
| #endif /* CONFIG_DEDIPROG */ |