Anastasia Klimchuk has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/56470 )
Change subject: tests: Add init-shutdown test for nicrealtek ......................................................................
tests: Add init-shutdown test for nicrealtek
This patch adds a test and mocks for two pci functions that nicreltek is using.
Main reason for this is to have at least one test for par master (currently there are none), in preparation for a change like CB:56103 but for par masters.
BUG=b:181803212 TEST=ninja test
Change-Id: Iaed14fe1d83c8eb45ec185ebd3f1c97cb81941f4 Signed-off-by: Anastasia Klimchuk aklm@chromium.org --- M tests/init_shutdown.c M tests/io_mock.h M tests/meson.build M tests/tests.c M tests/tests.h 5 files changed, 34 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/70/56470/1
diff --git a/tests/init_shutdown.c b/tests/init_shutdown.c index 79918e6..eeea3cc 100644 --- a/tests/init_shutdown.c +++ b/tests/init_shutdown.c @@ -89,6 +89,15 @@ #endif }
+void nicrealtek_init_and_shutdown_test_success(void **state) +{ +#if CONFIG_NICREALTEK == 1 + run_lifecycle(state, &programmer_nicrealtek, ""); +#else + skip(); +#endif +} + int dediprog_libusb_control_transfer(void *state, libusb_device_handle *devh, uint8_t bmRequestType, diff --git a/tests/io_mock.h b/tests/io_mock.h index 72d89c5..5cddca0 100644 --- a/tests/io_mock.h +++ b/tests/io_mock.h @@ -37,6 +37,11 @@ struct libusb_context; typedef struct libusb_context libusb_context;
+/* Define struct pci_dev to avoid dependency on pci.h */ +struct pci_dev { + unsigned int device_id; +}; + struct io_mock { void *state;
diff --git a/tests/meson.build b/tests/meson.build index 5776862..9fb86c7 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -26,6 +26,8 @@ '-Wl,--wrap=strdup', '-Wl,--wrap=physunmap', '-Wl,--wrap=physmap', + '-Wl,--wrap=pcidev_init', + '-Wl,--wrap=pcidev_readbar', '-Wl,--wrap=spi_send_command', '-Wl,--wrap=sio_write', '-Wl,--wrap=sio_read', diff --git a/tests/tests.c b/tests/tests.c index 78258b0..3c05250 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -53,6 +53,22 @@ return NULL; }
+struct pci_dev mock_pci_dev = { + .device_id = MOCK_HANDLE, +}; + +struct pci_dev *__wrap_pcidev_init(void *devs, int bar) +{ + LOG_ME; + return &mock_pci_dev; +} + +uintptr_t __wrap_pcidev_readbar(void *dev, int bar) +{ + LOG_ME; + return MOCK_HANDLE; +} + void __wrap_sio_write(uint16_t port, uint8_t reg, uint8_t data) { LOG_ME; @@ -230,6 +246,7 @@ const struct CMUnitTest init_shutdown_tests[] = { cmocka_unit_test(dummy_init_and_shutdown_test_success), cmocka_unit_test(mec1308_init_and_shutdown_test_success), + cmocka_unit_test(nicrealtek_init_and_shutdown_test_success), cmocka_unit_test(dediprog_init_and_shutdown_test_success), cmocka_unit_test(ene_lpc_init_and_shutdown_test_success), cmocka_unit_test(linux_spi_init_and_shutdown_test_success), diff --git a/tests/tests.h b/tests/tests.h index eccc05f..165c326 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -43,6 +43,7 @@ /* init_shutdown.c */ void dummy_init_and_shutdown_test_success(void **state); void mec1308_init_and_shutdown_test_success(void **state); +void nicrealtek_init_and_shutdown_test_success(void **state); void dediprog_init_and_shutdown_test_success(void **state); void ene_lpc_init_and_shutdown_test_success(void **state); void linux_spi_init_and_shutdown_test_success(void **state);