summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
3ea7b4d)
OpenBSD doesn't idempotent-wrap sys/mman.h, so when we #define mmap to
an alternative, it fails to compile when sys/mman.h is included again.
Workaround is not to #define mmap to add arguments on Open BSD.
+/* Since OpenBSD can't handle adding args, we use this file and line.
+ * This will make all mmaps look the same, reducing coverage. */
+void *failtest_mmap_noloc(void *addr, size_t length, int prot, int flags,
+ int fd, off_t offset)
+{
+ return failtest_mmap(addr, length, prot, flags, fd, offset,
+ __FILE__, __LINE__);
+}
+
static void cleanup_pipe(struct pipe_call *call, bool restore)
{
trace("cleaning up pipe fd=%i%s,%i%s\n",
static void cleanup_pipe(struct pipe_call *call, bool restore)
{
trace("cleaning up pipe fd=%i%s,%i%s\n",
#define fcntl(fd, ...) failtest_fcntl((fd), __FILE__, __LINE__, __VA_ARGS__)
#undef mmap
#define fcntl(fd, ...) failtest_fcntl((fd), __FILE__, __LINE__, __VA_ARGS__)
#undef mmap
+/* OpenBSD doesn't idempotent-protect sys/mman.h, so we can't add args. */
+#ifdef __OpenBSD__
+#define mmap(addr, length, prot, flags, fd, offset) \
+ failtest_mmap_noloc((addr), (length), (prot), (flags), (fd), (offset))
+#else
#define mmap(addr, length, prot, flags, fd, offset) \
failtest_mmap((addr), (length), (prot), (flags), (fd), (offset), \
__FILE__, __LINE__)
#define mmap(addr, length, prot, flags, fd, offset) \
failtest_mmap((addr), (length), (prot), (flags), (fd), (offset), \
__FILE__, __LINE__)
+#endif /* !__OpenBSD__ */
#undef lseek
#define lseek(fd, offset, whence) \
#undef lseek
#define lseek(fd, offset, whence) \
const char *file, unsigned line);
void *failtest_mmap(void *addr, size_t length, int prot, int flags,
int fd, off_t offset, const char *file, unsigned line);
const char *file, unsigned line);
void *failtest_mmap(void *addr, size_t length, int prot, int flags,
int fd, off_t offset, const char *file, unsigned line);
+void *failtest_mmap_noloc(void *addr, size_t length, int prot, int flags,
+ int fd, off_t offset);
off_t failtest_lseek(int fd, off_t offset, int whence,
const char *file, unsigned line);
int failtest_close(int fd, const char *file, unsigned line);
off_t failtest_lseek(int fd, off_t offset, int whence,
const char *file, unsigned line);
int failtest_close(int fd, const char *file, unsigned line);