| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stddef.h> |
| 6 #include <stdint.h> |
| 7 |
| 5 #include "base/debug/proc_maps_linux.h" | 8 #include "base/debug/proc_maps_linux.h" |
| 6 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/macros.h" |
| 7 #include "base/path_service.h" | 11 #include "base/path_service.h" |
| 8 #include "base/strings/stringprintf.h" | 12 #include "base/strings/stringprintf.h" |
| 9 #include "base/third_party/dynamic_annotations/dynamic_annotations.h" | 13 #include "base/third_party/dynamic_annotations/dynamic_annotations.h" |
| 10 #include "base/threading/platform_thread.h" | 14 #include "base/threading/platform_thread.h" |
| 15 #include "build/build_config.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
| 12 | 17 |
| 13 namespace base { | 18 namespace base { |
| 14 namespace debug { | 19 namespace debug { |
| 15 | 20 |
| 16 TEST(ProcMapsTest, Empty) { | 21 TEST(ProcMapsTest, Empty) { |
| 17 std::vector<MappedMemoryRegion> regions; | 22 std::vector<MappedMemoryRegion> regions; |
| 18 EXPECT_TRUE(ParseProcMaps("", ®ions)); | 23 EXPECT_TRUE(ParseProcMaps("", ®ions)); |
| 19 EXPECT_EQ(0u, regions.size()); | 24 EXPECT_EQ(0u, regions.size()); |
| 20 } | 25 } |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 135 | 140 |
| 136 EXPECT_EQ(0x0060b000u, regions[2].start); | 141 EXPECT_EQ(0x0060b000u, regions[2].start); |
| 137 EXPECT_EQ(0x0060c000u, regions[2].end); | 142 EXPECT_EQ(0x0060c000u, regions[2].end); |
| 138 EXPECT_EQ(0x0000b000u, regions[2].offset); | 143 EXPECT_EQ(0x0000b000u, regions[2].offset); |
| 139 EXPECT_EQ("/bin/cat", regions[2].path); | 144 EXPECT_EQ("/bin/cat", regions[2].path); |
| 140 } | 145 } |
| 141 | 146 |
| 142 TEST(ProcMapsTest, Permissions) { | 147 TEST(ProcMapsTest, Permissions) { |
| 143 static struct { | 148 static struct { |
| 144 const char* input; | 149 const char* input; |
| 145 uint8 permissions; | 150 uint8_t permissions; |
| 146 } kTestCases[] = { | 151 } kTestCases[] = { |
| 147 {"00400000-0040b000 ---s 00000000 fc:00 794418 /bin/cat\n", 0}, | 152 {"00400000-0040b000 ---s 00000000 fc:00 794418 /bin/cat\n", 0}, |
| 148 {"00400000-0040b000 ---S 00000000 fc:00 794418 /bin/cat\n", 0}, | 153 {"00400000-0040b000 ---S 00000000 fc:00 794418 /bin/cat\n", 0}, |
| 149 {"00400000-0040b000 r--s 00000000 fc:00 794418 /bin/cat\n", | 154 {"00400000-0040b000 r--s 00000000 fc:00 794418 /bin/cat\n", |
| 150 MappedMemoryRegion::READ}, | 155 MappedMemoryRegion::READ}, |
| 151 {"00400000-0040b000 -w-s 00000000 fc:00 794418 /bin/cat\n", | 156 {"00400000-0040b000 -w-s 00000000 fc:00 794418 /bin/cat\n", |
| 152 MappedMemoryRegion::WRITE}, | 157 MappedMemoryRegion::WRITE}, |
| 153 {"00400000-0040b000 --xs 00000000 fc:00 794418 /bin/cat\n", | 158 {"00400000-0040b000 --xs 00000000 fc:00 794418 /bin/cat\n", |
| 154 MappedMemoryRegion::EXECUTE}, | 159 MappedMemoryRegion::EXECUTE}, |
| 155 {"00400000-0040b000 rwxs 00000000 fc:00 794418 /bin/cat\n", | 160 {"00400000-0040b000 rwxs 00000000 fc:00 794418 /bin/cat\n", |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 EXPECT_EQ(5ULL, regions.size()); | 334 EXPECT_EQ(5ULL, regions.size()); |
| 330 EXPECT_EQ("/bin/cat", regions[0].path); | 335 EXPECT_EQ("/bin/cat", regions[0].path); |
| 331 EXPECT_EQ("/lib/x86_64-linux-gnu/libc-2.15.so", regions[1].path); | 336 EXPECT_EQ("/lib/x86_64-linux-gnu/libc-2.15.so", regions[1].path); |
| 332 EXPECT_EQ("/lib/x86_64-linux-gnu/ld-2.15.so", regions[2].path); | 337 EXPECT_EQ("/lib/x86_64-linux-gnu/ld-2.15.so", regions[2].path); |
| 333 EXPECT_EQ("\"vd so\"", regions[3].path); | 338 EXPECT_EQ("\"vd so\"", regions[3].path); |
| 334 EXPECT_EQ("[vsys call]", regions[4].path); | 339 EXPECT_EQ("[vsys call]", regions[4].path); |
| 335 } | 340 } |
| 336 | 341 |
| 337 } // namespace debug | 342 } // namespace debug |
| 338 } // namespace base | 343 } // namespace base |
| OLD | NEW |