1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-10 01:18:15 +03:00
samba-mirror/lib/replace/tests/shared_mremap.c
Andrew Bartlett 6cc68c1ccf replace: Fix "make test" to actually test libreplace
Found by Joe Guo during preperation for automated code coverage output.

In order to allow the Makefile wrapper to work we need to rename the
test directory to tests.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2019-05-06 05:46:11 +00:00

52 lines
783 B
C

/* this tests whether we can use mremap */
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define DATA "conftest.mmap"
#ifndef MAP_FILE
#define MAP_FILE 0
#endif
#ifndef MAP_FAILED
#define MAP_FAILED (int *)-1
#endif
int main(void)
{
int *buf;
int fd;
int err = 1;
fd = open(DATA, O_RDWR|O_CREAT|O_TRUNC, 0666);
if (fd == -1) {
exit(1);
}
buf = (int *)mmap(NULL, 0x1000, PROT_READ | PROT_WRITE,
MAP_FILE | MAP_SHARED, fd, 0);
if (buf == MAP_FAILED) {
goto done;
}
buf = mremap(buf, 0x1000, 0x2000, MREMAP_MAYMOVE);
if (buf == MAP_FAILED) {
goto done;
}
err = 0;
done:
close(fd);
unlink(DATA);
exit(err);
}