1a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Copyright 2006-2008 the V8 project authors. All rights reserved.
2a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block//
3a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block// Tests of the TokenLock class from lock.h
4a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block
5a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block#include <stdlib.h>
6a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block
7a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block#include "v8.h"
8a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block
9a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block#include "platform.h"
10a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block#include "cctest.h"
11a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block
12a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Blockusing namespace ::v8::internal;
13a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block
14a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block
15a7e24c173cf37484693b9abb38e494fa7bd7baebSteve BlockTEST(VirtualMemory) {
163ef787dbeca8a5fb1086949cda830dccee07bfbdBen Murdoch  OS::SetUp();
17a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block  VirtualMemory* vm = new VirtualMemory(1 * MB);
18a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block  CHECK(vm->IsReserved());
19a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block  void* block_addr = vm->address();
20a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block  size_t block_size = 4 * KB;
21a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block  CHECK(vm->Commit(block_addr, block_size, false));
22a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block  // Check whether we can write to memory.
23a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block  int* addr = static_cast<int*>(block_addr);
24a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block  addr[KB-1] = 2;
25a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block  CHECK(vm->Uncommit(block_addr, block_size));
26a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block  delete vm;
27a7e24c173cf37484693b9abb38e494fa7bd7baebSteve Block}
28