| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "crazy_linker_ashmem.h" |
| |
| #include <sys/mman.h> |
| |
| #include <gtest/gtest.h> |
| |
| namespace crazy { |
| |
| TEST(AshmemRegion, Construction) { |
| AshmemRegion region; |
| EXPECT_EQ(-1, region.fd()); |
| } |
| |
| TEST(AshmemRegion, Allocate) { |
| AshmemRegion region; |
| const size_t kSize = 4096 * 10; |
| EXPECT_TRUE(region.Allocate(kSize, __FUNCTION__)); |
| void* map = ::mmap(NULL, |
| kSize, |
| PROT_READ | PROT_WRITE, |
| MAP_ANONYMOUS | MAP_SHARED, |
| region.fd(), |
| 0); |
| EXPECT_NE(MAP_FAILED, map); |
| |
| for (size_t n = 0; n < kSize; ++n) { |
| EXPECT_EQ(0, ((char*)map)[n]) << "Checking region[" << n << "]"; |
| } |
| |
| EXPECT_EQ(0, ::munmap(map, kSize)); |
| } |
| |
| } // namespace crazy |