summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/io_mock.h2
-rw-r--r--tests/tests.c4
2 files changed, 6 insertions, 0 deletions
diff --git a/tests/io_mock.h b/tests/io_mock.h
index 020794af6..979806683 100644
--- a/tests/io_mock.h
+++ b/tests/io_mock.h
@@ -111,8 +111,10 @@ struct io_mock {
FILE* (*iom_fopen)(void *state, const char *pathname, const char *mode);
char* (*iom_fgets)(void *state, char *buf, int len, FILE *fp);
size_t (*iom_fread)(void *state, void *buf, size_t size, size_t len, FILE *fp);
+ size_t (*iom_fwrite)(void *state, const void *buf, size_t size, size_t len, FILE *fp);
int (*iom_fprintf)(void *state, FILE *fp, const char *fmt, va_list args);
int (*iom_fclose)(void *state, FILE *fp);
+ FILE *(*iom_fdopen)(void *state, int fd, const char *mode);
/*
* An alternative to custom open mock. A test can either register its
diff --git a/tests/tests.c b/tests/tests.c
index b517898f7..41972ba25 100644
--- a/tests/tests.c
+++ b/tests/tests.c
@@ -184,6 +184,8 @@ FILE *__wrap_fopen64(const char *pathname, const char *mode)
FILE *__wrap_fdopen(int fd, const char *mode)
{
LOG_ME;
+ if (get_io() && get_io()->iom_fdopen)
+ return get_io()->iom_fdopen(get_io()->state, fd, mode);
return not_null();
}
@@ -254,6 +256,8 @@ size_t __wrap_fread(void *ptr, size_t size, size_t nmemb, FILE *fp)
size_t __wrap_fwrite(const void *ptr, size_t size, size_t nmemb, FILE *fp)
{
LOG_ME;
+ if (get_io() && get_io()->iom_fwrite)
+ return get_io()->iom_fwrite(get_io()->state, ptr, size, nmemb, fp);
return nmemb;
}