| Index: base/trace_event/memory_allocator_dump_unittest.cc
|
| diff --git a/base/trace_event/memory_allocator_dump_unittest.cc b/base/trace_event/memory_allocator_dump_unittest.cc
|
| index b9adbae07da093aeba98c78768a5d1750ac614ca..85b98d65511ed556bbdb27679c65038c497a5266 100644
|
| --- a/base/trace_event/memory_allocator_dump_unittest.cc
|
| +++ b/base/trace_event/memory_allocator_dump_unittest.cc
|
| @@ -11,6 +11,7 @@
|
| #include "base/trace_event/memory_dump_session_state.h"
|
| #include "base/trace_event/process_memory_dump.h"
|
| #include "base/trace_event/trace_event_argument.h"
|
| +#include "base/values.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace base {
|
| @@ -47,20 +48,23 @@ class FakeMemoryAllocatorDumpProvider : public MemoryDumpProvider {
|
| }
|
| };
|
|
|
| -bool CheckAttribute(const MemoryAllocatorDump* dump,
|
| - const std::string& name,
|
| - const char* expected_type,
|
| - const char* expected_units,
|
| - const Value** out_value) {
|
| - const char* attr_type;
|
| - const char* attr_units;
|
| - bool res = dump->Get(name, &attr_type, &attr_units, out_value);
|
| - EXPECT_TRUE(res);
|
| - if (!res)
|
| - return false;
|
| - EXPECT_EQ(expected_type, std::string(attr_type));
|
| - EXPECT_EQ(expected_units, std::string(attr_units));
|
| - return true;
|
| +scoped_ptr<Value> CheckAttribute(const MemoryAllocatorDump* dump,
|
| + const std::string& name,
|
| + const char* expected_type,
|
| + const char* expected_units) {
|
| + scoped_ptr<Value> raw_attrs = dump->attributes_for_testing()->ToBaseValue();
|
| + DictionaryValue* args = nullptr;
|
| + DictionaryValue* arg = nullptr;
|
| + std::string arg_value;
|
| + const Value* out_value = nullptr;
|
| + EXPECT_TRUE(raw_attrs->GetAsDictionary(&args));
|
| + EXPECT_TRUE(args->GetDictionary(name, &arg));
|
| + EXPECT_TRUE(arg->GetString("type", &arg_value));
|
| + EXPECT_EQ(expected_type, arg_value);
|
| + EXPECT_TRUE(arg->GetString("units", &arg_value));
|
| + EXPECT_EQ(expected_units, arg_value);
|
| + EXPECT_TRUE(arg->Get("value", &out_value));
|
| + return out_value ? out_value->CreateDeepCopy() : scoped_ptr<Value>();
|
| }
|
|
|
| void CheckString(const MemoryAllocatorDump* dump,
|
| @@ -68,12 +72,8 @@ void CheckString(const MemoryAllocatorDump* dump,
|
| const char* expected_type,
|
| const char* expected_units,
|
| const std::string& expected_value) {
|
| - const Value* attr_value = nullptr;
|
| std::string attr_str_value;
|
| - bool res =
|
| - CheckAttribute(dump, name, expected_type, expected_units, &attr_value);
|
| - if (!res)
|
| - return;
|
| + auto attr_value = CheckAttribute(dump, name, expected_type, expected_units);
|
| EXPECT_TRUE(attr_value->GetAsString(&attr_str_value));
|
| EXPECT_EQ(expected_value, attr_str_value);
|
| }
|
| @@ -90,12 +90,9 @@ void CheckScalarF(const MemoryAllocatorDump* dump,
|
| const std::string& name,
|
| const char* expected_units,
|
| double expected_value) {
|
| - const Value* attr_value = nullptr;
|
| + auto attr_value = CheckAttribute(dump, name, MemoryAllocatorDump::kTypeScalar,
|
| + expected_units);
|
| double attr_double_value;
|
| - bool res = CheckAttribute(dump, name, MemoryAllocatorDump::kTypeScalar,
|
| - expected_units, &attr_value);
|
| - if (!res)
|
| - return;
|
| EXPECT_TRUE(attr_value->GetAsDouble(&attr_double_value));
|
| EXPECT_EQ(expected_value, attr_double_value);
|
| }
|
| @@ -154,15 +151,15 @@ TEST(MemoryAllocatorDumpTest, DumpIntoProcessMemoryDump) {
|
| MemoryAllocatorDump::kUnitsBytes, 1);
|
| CheckScalar(sub_heap, MemoryAllocatorDump::kNameObjectsCount,
|
| MemoryAllocatorDump::kUnitsObjects, 3);
|
| -
|
| const MemoryAllocatorDump* empty_sub_heap =
|
| pmd.GetAllocatorDump("foobar_allocator/sub_heap/empty");
|
| ASSERT_NE(nullptr, empty_sub_heap);
|
| EXPECT_EQ("foobar_allocator/sub_heap/empty", empty_sub_heap->absolute_name());
|
| - ASSERT_FALSE(empty_sub_heap->Get(MemoryAllocatorDump::kNameSize, nullptr,
|
| - nullptr, nullptr));
|
| - ASSERT_FALSE(empty_sub_heap->Get(MemoryAllocatorDump::kNameObjectsCount,
|
| - nullptr, nullptr, nullptr));
|
| + auto raw_attrs = empty_sub_heap->attributes_for_testing()->ToBaseValue();
|
| + DictionaryValue* attrs = nullptr;
|
| + ASSERT_TRUE(raw_attrs->GetAsDictionary(&attrs));
|
| + ASSERT_FALSE(attrs->HasKey(MemoryAllocatorDump::kNameSize));
|
| + ASSERT_FALSE(attrs->HasKey(MemoryAllocatorDump::kNameObjectsCount));
|
|
|
| // Check that the AsValueInfo doesn't hit any DCHECK.
|
| scoped_refptr<TracedValue> traced_value(new TracedValue());
|
|
|