1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-27 07:02:34 +02:00
flashrom/tests/realtek_mst_i2c_spi.c
Anastasia Klimchuk 94efa44542 tests: Split lifecycle test file into per-programmer files
This patch creates individual files for each programmer's lifecycle
tests. Common functions that are reusable for all tests are
gathered in lifecycle.c. Each individual file needs to include
lifecycle.h

BUG=b:237606255
TEST=ninja test

Change-Id: If2307699dcbb3a085b91a2dcd41156e6fd07f812
Signed-off-by: Anastasia Klimchuk <aklm@chromium.org>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/65543
Reviewed-by: Peter Marheine <pmarheine@chromium.org>
Reviewed-by: Felix Singer <felixsinger@posteo.net>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Reviewed-by: Thomas Heijligen <src@posteo.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-07-10 22:28:45 +00:00

64 lines
1.9 KiB
C

/*
* 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_REALTEK_MST_I2C_SPI == 1
static int realtek_mst_ioctl(void *state, int fd, unsigned long request, va_list args)
{
assert_int_equal(fd, MOCK_FD);
assert_int_equal(request, I2C_SLAVE);
/* Only access to I2C address 0x4a is expected */
unsigned long addr = va_arg(args, unsigned long);
assert_int_equal(addr, 0x4a);
return 0;
}
static int realtek_mst_read(void *state, int fd, void *buf, size_t sz)
{
assert_int_equal(fd, MOCK_FD);
assert_int_equal(sz, 1);
return sz;
}
static int realtek_mst_write(void *state, int fd, const void *buf, size_t sz)
{
assert_int_equal(fd, MOCK_FD);
const LargestIntegralType accepted_sizes[] = {1, 2};
assert_in_set(sz, accepted_sizes, ARRAY_SIZE(accepted_sizes));
return sz;
}
void realtek_mst_basic_lifecycle_test_success(void **state)
{
struct io_mock_fallback_open_state realtek_mst_fallback_open_state = {
.noc = 0,
.paths = { "/dev/i2c-254", NULL },
.flags = { O_RDWR },
};
const struct io_mock realtek_mst_io = {
.ioctl = realtek_mst_ioctl,
.read = realtek_mst_read,
.write = realtek_mst_write,
.fallback_open_state = &realtek_mst_fallback_open_state,
};
run_basic_lifecycle(state, &realtek_mst_io, &programmer_realtek_mst_i2c_spi, "bus=254,enter-isp=0");
}
#else
SKIP_TEST(realtek_mst_basic_lifecycle_test_success)
#endif /* CONFIG_REALTEK_I2C_SPI */