Commit e8564687 authored by Andrei Vagin's avatar Andrei Vagin

zdtm/maps006: modify test so that file and anon vma-s are mixed

Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
parent cef1efe5
...@@ -10,8 +10,11 @@ const char *test_author = "Andrei Vagin <avagin@openvz.org>"; ...@@ -10,8 +10,11 @@ const char *test_author = "Andrei Vagin <avagin@openvz.org>";
char *filename; char *filename;
TEST_OPTION(filename, string, "file name", 1); TEST_OPTION(filename, string, "file name", 1);
#define TEST_SIZE 10240
int main(int argc, char ** argv) int main(int argc, char ** argv)
{ {
void *start;
int fd, i; int fd, i;
test_init(argc, argv); test_init(argc, argv);
...@@ -22,17 +25,40 @@ int main(int argc, char ** argv) ...@@ -22,17 +25,40 @@ int main(int argc, char ** argv)
ftruncate(fd, 4096); ftruncate(fd, 4096);
for (i = 0; i < 1024; i++) { start = mmap(0, 4096 * TEST_SIZE * 4, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
if (mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FILE, fd, 0) == MAP_FAILED) if (start == MAP_FAILED)
return 1;
for (i = 0; i < TEST_SIZE; i++) {
int *addr;
addr = mmap(start + i * 3 * 4096, 4096,
PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_FILE | MAP_FIXED, fd, 0);
if (addr == MAP_FAILED)
return 1; return 1;
if (mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0) == MAP_FAILED) addr[0] = i * 2;
addr = mmap(start + (i * 3 + 1) * 4096, 4096,
PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
if (addr == MAP_FAILED)
return 1; return 1;
addr[0] = i;
} }
test_daemon(); test_daemon();
test_waitsig(); test_waitsig();
for (i = 0; i < TEST_SIZE; i++) {
int *addr;
addr = start + i * 3 * 4096;;
if (addr[0] != i * 2)
fail();
addr = start + (i * 3 + 1) * 4096;
if (addr[0] != i)
fail();
}
pass(); pass();
return 0; return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment