summaryrefslogtreecommitdiff
path: root/regress/sys/kern/mmap3
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2006-02-20 17:03:28 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2006-02-20 17:03:28 +0000
commitcc22698e3d08fa9f43bbb8637f9ae25ed57afa02 (patch)
tree02e28d56ce9a188fbb6072d0fa9c134bce96e3b4 /regress/sys/kern/mmap3
parent7fa3f5e4cbb5b2085f55e7528adb6f15d3445827 (diff)
make it more evil and panic; from egger@
Diffstat (limited to 'regress/sys/kern/mmap3')
-rw-r--r--regress/sys/kern/mmap3/mmaptest.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/regress/sys/kern/mmap3/mmaptest.c b/regress/sys/kern/mmap3/mmaptest.c
index bf46847f10d..1318d46c41f 100644
--- a/regress/sys/kern/mmap3/mmaptest.c
+++ b/regress/sys/kern/mmap3/mmaptest.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mmaptest.c,v 1.5 2006/02/15 12:09:34 mickey Exp $ */
+/* $OpenBSD: mmaptest.c,v 1.6 2006/02/20 17:03:27 mickey Exp $ */
/*
* Copyright (c) 2002 Marc Espie.
*
@@ -32,6 +32,7 @@
#include <err.h>
#include <unistd.h>
+#define AREA (16 * 4096)
/*
* Check for mmap/ftruncate interaction. Specifically, ftruncate on
* a short file may lose modifications made through an mmapped area.
@@ -41,34 +42,38 @@ main(int argc, char *argv[])
{
int i;
int fd;
- char area[256];
+ char area[AREA];
char *a2;
- for (i = 0 ; i < 256; i++)
+ for (i = 0 ; i < AREA; i++)
area[i] = 5;
fd = open("test.out", O_WRONLY|O_CREAT|O_TRUNC, 0600);
if (fd == -1)
err(1, "open(test.out)");
- if (write(fd, area, 256) != 256)
+ if (write(fd, area, AREA) != AREA)
err(1, "write");
if (close(fd))
err(1, "close");
fd = open("test.out", O_RDWR);
if (fd == -1)
err(1, "open(test.out) 2");
- a2 = mmap(NULL, 256, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
+ a2 = mmap(NULL, AREA, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
if (!a2)
err(1, "mmap");
a2[10] = 3;
- msync(a2, 256, MS_SYNC|MS_INVALIDATE);
+ msync(a2, AREA, MS_SYNC|MS_INVALIDATE);
+ if (mlock(a2, AREA))
+ err(1, "mlock");
if (ftruncate(fd, 128))
err(1, "ftruncate");
+ if (munlock(a2, AREA))
+ err(1, "munlock");
if (close(fd))
err(1, "close");
fd = open("test.out", O_RDONLY);
if (fd == -1)
err(1, "open(test.out) 3");
- if (read(fd, area, 256) != 128)
+ if (read(fd, area, AREA) != 128)
err(1, "read");
if (area[10] != 3)
errx(1, "area[10] != 3");