Commit 63c9478a authored by Andrey Vagin's avatar Andrey Vagin Committed by Pavel Emelyanov

zdtm: add a new test case for growdown vma-s

This test case creates two consecutive grows down vmas with a hole
between them.
Signed-off-by: 's avatarAndrey Vagin <avagin@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 20ec5859
...@@ -100,6 +100,7 @@ static/sk-netlink ...@@ -100,6 +100,7 @@ static/sk-netlink
static/proc-self static/proc-self
static/grow_map static/grow_map
static/grow_map02 static/grow_map02
static/grow_map03
static/stopped static/stopped
static/chroot static/chroot
static/chroot-file static/chroot-file
......
...@@ -102,6 +102,7 @@ TST_NOFILE = \ ...@@ -102,6 +102,7 @@ TST_NOFILE = \
mem-touch \ mem-touch \
grow_map \ grow_map \
grow_map02 \ grow_map02 \
grow_map03 \
tun \ tun \
stopped \ stopped \
rtc \ rtc \
......
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
#include "zdtmtst.h"
const char *test_doc = "Check that VMA-s with MAP_GROWSDOWN are restored correctly";
const char *test_author = "Andrew Vagin <avagin@openvz.org>";
/*
* This test case creates two consecutive grows down vmas with a hole
* between them.
*/
int main(int argc, char **argv)
{
char *start_addr, *addr1, *addr2;
test_init(argc, argv);
start_addr = mmap(NULL, PAGE_SIZE * 10, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
if (start_addr == MAP_FAILED) {
err("Can't mal a new region");
return 1;
}
munmap(start_addr, PAGE_SIZE * 10);
addr1 = mmap(start_addr + PAGE_SIZE * 5, PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE | MAP_GROWSDOWN, -1, 0);
addr2 = mmap(start_addr + PAGE_SIZE * 3, PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE | MAP_GROWSDOWN, -1, 0);
err("%p %p\n", addr1, addr2);
test_daemon();
test_waitsig();
pass();
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