Nico Huber submitted this change.

View Change

Approvals: build bot (Jenkins): Verified Nico Huber: Looks good to me, approved
tests: Add NON_ZERO macro and not_null function instead of MOCK_HANDLE

This patch adds NON_ZERO macro and not_null function into io_mock.h,
so that they can be used anywhere in tests. Common usage for not_null
is to indicate a valid pointer, where it doesn't matter what the
pointer is, only matters it is not null. Common usage of NON_ZERO is
to indicate a valid file descriptor, where it only matters the
descriptor is non-zero integer.

New features replace all usages of previous MOCK_HANDLE.

This patch corrects return value from __wrap_ioctl to be successful
by default. It used to be MOCK_HANDLE, but should be 0. Included in
this patch because this is also a replacement of MOCK_HANDLE.

BUG=b:181803212
TEST=builds and ninja test

Change-Id: I5ad6ee4aa9091447c6c9108c92bf7f6e755fca48
Signed-off-by: Anastasia Klimchuk <aklm@chromium.org>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/57269
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
---
M tests/include/test.h
M tests/init_shutdown.c
M tests/tests.c
3 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/tests/include/test.h b/tests/include/test.h
index 24fa963..ee7b4cf 100644
--- a/tests/include/test.h
+++ b/tests/include/test.h
@@ -27,4 +27,12 @@
#include <setjmp.h>
#include <cmocka.h>

+#define NON_ZERO (0xf000baaa)
+
+/*
+ * Having this as function allows to set a breakpoint on the address,
+ * as it has a named symbol associated with the address number.
+ */
+void *not_null(void);
+
#endif /* _TESTS_TEST_H */
diff --git a/tests/init_shutdown.c b/tests/init_shutdown.c
index 90bde1e..03e888f 100644
--- a/tests/init_shutdown.c
+++ b/tests/init_shutdown.c
@@ -19,8 +19,6 @@
#include "io_mock.h"
#include "programmer.h"

-#define NOT_NULL ((void *)0xf000baaa)
-
static void run_lifecycle(void **state, const struct programmer_entry *prog, const char *param)
{
(void) state; /* unused */
@@ -100,7 +98,7 @@

io_state->fopen_path = strdup(pathname);

- return NOT_NULL;
+ return not_null();
}

size_t linux_mtd_fread(void *state, void *buf, size_t size, size_t len, FILE *fp)
diff --git a/tests/tests.c b/tests/tests.c
index ac59470..9dadddf 100644
--- a/tests/tests.c
+++ b/tests/tests.c
@@ -23,7 +23,11 @@

/* redefinitions/wrapping */
#define LOG_ME printf("%s is called\n", __func__)
-#define MOCK_HANDLE 2021
+
+void *not_null(void)
+{
+ return (void *)NON_ZERO;
+}

static const struct io_mock *current_io = NULL;

@@ -54,7 +58,7 @@
}

struct pci_dev mock_pci_dev = {
- .device_id = MOCK_HANDLE,
+ .device_id = NON_ZERO,
};

struct pci_dev *__wrap_pcidev_init(void *devs, int bar)
@@ -66,7 +70,7 @@
uintptr_t __wrap_pcidev_readbar(void *dev, int bar)
{
LOG_ME;
- return MOCK_HANDLE;
+ return NON_ZERO;
}

void __wrap_sio_write(uint16_t port, uint8_t reg, uint8_t data)
@@ -85,7 +89,7 @@
LOG_ME;
if (current_io && current_io->open)
return current_io->open(current_io->state, pathname, flags);
- return MOCK_HANDLE;
+ return NON_ZERO;
}

int __wrap_open64(const char *pathname, int flags)
@@ -93,7 +97,7 @@
LOG_ME;
if (current_io && current_io->open)
return current_io->open(current_io->state, pathname, flags);
- return MOCK_HANDLE;
+ return NON_ZERO;
}

int __wrap_ioctl(int fd, unsigned long int request, ...)
@@ -107,7 +111,7 @@
va_end(args);
return out;
}
- return MOCK_HANDLE;
+ return 0;
}

int __wrap_write(int fd, const void *buf, size_t sz)
@@ -131,7 +135,7 @@
LOG_ME;
if (current_io && current_io->fopen)
return current_io->fopen(current_io->state, pathname, mode);
- return (void *)MOCK_HANDLE;
+ return not_null();
}

FILE *__wrap_fopen64(const char *pathname, const char *mode)
@@ -139,7 +143,7 @@
LOG_ME;
if (current_io && current_io->fopen)
return current_io->fopen(current_io->state, pathname, mode);
- return (void *)MOCK_HANDLE;
+ return not_null();
}

int __wrap_stat(const char *path, void *buf)
@@ -197,7 +201,7 @@
int __wrap_fileno(FILE *fp)
{
LOG_ME;
- return MOCK_HANDLE;
+ return NON_ZERO;
}

int __wrap_fsync(int fd)
@@ -292,7 +296,7 @@
libusb_context *usb_ctx, uint16_t vid, uint16_t pid, unsigned int num)
{
LOG_ME;
- return (void *)MOCK_HANDLE;
+ return not_null();
}

int __wrap_libusb_set_configuration(libusb_device_handle *devh, int config)

6 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one.

To view, visit change 57269. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-Change-Id: I5ad6ee4aa9091447c6c9108c92bf7f6e755fca48
Gerrit-Change-Number: 57269
Gerrit-PatchSet: 8
Gerrit-Owner: Anastasia Klimchuk <aklm@chromium.org>
Gerrit-Reviewer: Angel Pons <th3fanbus@gmail.com>
Gerrit-Reviewer: Edward O'Callaghan <quasisec@chromium.org>
Gerrit-Reviewer: Nico Huber <nico.h@gmx.de>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>
Gerrit-CC: Paul Menzel <paulepanter@mailbox.org>
Gerrit-MessageType: merged