2 * QuanDocs mock I/O routines for unit testing.
4 * Copyright (C) 2015 Chris Jaekl
13 static void * readBuf = NULL;
14 static ssize_t readBufSize = 0;
15 static ssize_t readPos = 0;
17 static void * writeBuf = NULL;
18 static ssize_t writeBufSize = 0;
19 static ssize_t writePos = 0;
21 ssize_t qdMock_read(int fd, void *buf, size_t count)
23 assert(NULL != readBuf);
25 if (readPos < readBufSize) {
26 ssize_t remain = readBufSize - readPos;
27 ssize_t num = (count <= remain) ? count : remain;
28 unsigned char * p = (unsigned char *)readBuf;
38 void qdMock_resetReadBytes(void *buf, size_t count)
40 if (NULL != readBuf) {
43 readBuf = malloc(count);
44 assert(NULL != readBuf);
46 memcpy(readBuf, buf, count);
52 ssize_t qdMock_getNumBytesRead() {
57 ssize_t qdMock_write(int fd, void *buf, size_t count)
59 assert((0 == writeBufSize) || (NULL != writeBuf));
61 if (writePos < writeBufSize) {
62 ssize_t remain = writeBufSize - writePos;
63 ssize_t num = (count <= remain) ? count : remain;
64 unsigned char * p = (unsigned char *)writeBuf;
74 void qdMock_resetWriteBuf(ssize_t size)
78 if (writeBufSize == size) {
82 if (NULL != writeBuf) {
86 writeBuf = malloc(size);
87 assert(NULL != writeBuf);
91 ssize_t qdMock_getNumBytesWritten()
96 const void * qdMock_getBytesWritten()