Chromium Code Reviews| Index: base/process/process_metrics_unittest.cc |
| diff --git a/base/process/process_metrics_unittest.cc b/base/process/process_metrics_unittest.cc |
| index b11a26b24ba7cfd5417c519dff06257d5b3bb17b..fe83b49957e4deae45a025176dd8d2e0b8affb2b 100644 |
| --- a/base/process/process_metrics_unittest.cc |
| +++ b/base/process/process_metrics_unittest.cc |
| @@ -24,6 +24,12 @@ |
| #include "testing/gtest/include/gtest/gtest.h" |
| #include "testing/multiprocess_func_list.h" |
| +#if defined(OS_MACOSX) |
| +#include <sys/mman.h> |
| + |
| +#include "base/memory/free_deleter.h" |
| +#endif |
| + |
| namespace base { |
| namespace debug { |
| @@ -53,6 +59,37 @@ class SystemMetricsTest : public testing::Test { |
| ///////////////////////////////////////////////////////////////////////////// |
| +#if defined(OS_MACOSX) |
| +TEST_F(SystemMetricsTest, WiredBytes) { |
| + ProcessHandle handle = GetCurrentProcessHandle(); |
| + std::unique_ptr<ProcessMetrics> metrics( |
| + ProcessMetrics::CreateProcessMetrics(handle, nullptr)); |
| + |
| + size_t initial_wired_bytes; |
| + bool result = |
| + metrics->GetMemoryBytes(nullptr, nullptr, nullptr, &initial_wired_bytes); |
| + ASSERT_TRUE(result); |
| + |
| + size_t size = 999 * PAGE_SIZE; |
| + std::unique_ptr<char, base::FreeDeleter> memory( |
|
Primiano Tucci (use gerrit)
2017/03/28 20:32:54
just std::unique_ptr<char[])(new char[size)); ?
erikchen
2017/03/30 00:03:14
Done.
|
| + static_cast<char*>(malloc(size))); |
| + int r = mlock(memory.get(), size); |
| + ASSERT_EQ(r, 0); |
| + |
| + size_t new_wired_bytes; |
| + result = metrics->GetMemoryBytes(nullptr, nullptr, nullptr, &new_wired_bytes); |
| + ASSERT_TRUE(result); |
| + EXPECT_EQ(initial_wired_bytes + size, new_wired_bytes); |
| + |
| + r = munlock(memory.get(), size); |
| + ASSERT_EQ(r, 0); |
| + |
| + result = metrics->GetMemoryBytes(nullptr, nullptr, nullptr, &new_wired_bytes); |
| + ASSERT_TRUE(result); |
| + EXPECT_EQ(initial_wired_bytes, new_wired_bytes); |
|
Primiano Tucci (use gerrit)
2017/03/28 20:32:54
I got bitten in the past by this sort of tests. Th
Mark Mentovai
2017/03/28 20:56:11
Is gtest really running its own threads? That’s su
erikchen
2017/03/30 00:03:14
Done.
|
| +} |
| +#endif // defined(OS_MACOSX) |
| + |
| #if defined(OS_LINUX) || defined(OS_ANDROID) |
| TEST_F(SystemMetricsTest, IsValidDiskName) { |
| std::string invalid_input1 = ""; |