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