19258b6bc66e09368ada54001f619d53b4fc976d5ager@chromium.org// Copyright 2006-2008 the V8 project authors. All rights reserved.
2750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// Redistribution and use in source and binary forms, with or without
3750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// modification, are permitted provided that the following conditions are
4750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// met:
5750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org//
6750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org//     * Redistributions of source code must retain the above copyright
7750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org//       notice, this list of conditions and the following disclaimer.
8750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org//     * Redistributions in binary form must reproduce the above
9750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org//       copyright notice, this list of conditions and the following
10750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org//       disclaimer in the documentation and/or other materials provided
11750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org//       with the distribution.
12750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org//     * Neither the name of Google Inc. nor the names of its
13750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org//       contributors may be used to endorse or promote products derived
14750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org//       from this software without specific prior written permission.
15750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org//
16750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26750145ab1b720c97adf2b548cc8fbd28c8b8e06dulan@chromium.org// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
279a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com//
289a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com// Tests of the TokenLock class from lock.h
299a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com
309a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com#include <stdlib.h>
319a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com
329a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com#include "v8.h"
339a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com
349a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com#include "platform.h"
359a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com#include "cctest.h"
36e27d617298263725e8a48c2aa14029759b952623mstarzinger@chromium.org#include "win32-headers.h"
379a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com
389a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.comusing namespace ::v8::internal;
399a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com
409a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com
419a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.comTEST(VirtualMemory) {
42f2038fb01417bcf7698b87a5dfaa4a861539618aerik.corry@gmail.com  OS::SetUp();
439a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com  VirtualMemory* vm = new VirtualMemory(1 * MB);
449a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com  CHECK(vm->IsReserved());
459a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com  void* block_addr = vm->address();
469a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com  size_t block_size = 4 * KB;
479a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com  CHECK(vm->Commit(block_addr, block_size, false));
489a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com  // Check whether we can write to memory.
499a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com  int* addr = static_cast<int*>(block_addr);
509a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com  addr[KB-1] = 2;
519a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com  CHECK(vm->Uncommit(block_addr, block_size));
529a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com  delete vm;
539a4089a092cad9ff23b6416b92cd5d818dc101d1mads.s.ager@gmail.com}
54657d53b99cb4d261f8245bcb4248c39eb0a2b10frossberg@chromium.org
55657d53b99cb4d261f8245bcb4248c39eb0a2b10frossberg@chromium.org
56657d53b99cb4d261f8245bcb4248c39eb0a2b10frossberg@chromium.orgTEST(GetCurrentProcessId) {
57657d53b99cb4d261f8245bcb4248c39eb0a2b10frossberg@chromium.org  OS::SetUp();
58657d53b99cb4d261f8245bcb4248c39eb0a2b10frossberg@chromium.org  CHECK_EQ(static_cast<int>(::GetCurrentProcessId()),
59657d53b99cb4d261f8245bcb4248c39eb0a2b10frossberg@chromium.org           OS::GetCurrentProcessId());
60657d53b99cb4d261f8245bcb4248c39eb0a2b10frossberg@chromium.org}
61