diff options
author | primiano <primiano@chromium.org> | 2015-10-15 05:37:02 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-10-15 12:37:56 +0000 |
commit | 6e67febcc291b3b803445ca9275db0f9804c4027 (patch) | |
tree | cda91c671073d961a238eecc0cd1bbca04cb551a /components/tracing | |
parent | 9cb42e6b8df1acf46fcb6bb7fd442ccc1ac80f7a (diff) | |
download | chromium_src-6e67febcc291b3b803445ca9275db0f9804c4027.zip chromium_src-6e67febcc291b3b803445ca9275db0f9804c4027.tar.gz chromium_src-6e67febcc291b3b803445ca9275db0f9804c4027.tar.bz2 |
[tracing] Add test to graphics_memory_dump_provider_android.cc
Follow-up cl to crrev.com/1383733002, adds a unittest for the
graphics_memory_dump_provider_android.cc dump provider plus the
tedious gyp reshuffling required to make it happen.
BUG=529451
TEST=build/android/test_runner.py gtest -s components_unittests --gtest_filter='GraphicsMemoryDumpProviderTest.ParseResponse'
Review URL: https://codereview.chromium.org/1396313002
Cr-Commit-Position: refs/heads/master@{#354252}
Diffstat (limited to 'components/tracing')
-rw-r--r-- | components/tracing/BUILD.gn | 29 | ||||
-rw-r--r-- | components/tracing/graphics_memory_dump_provider_android.h | 2 | ||||
-rw-r--r-- | components/tracing/graphics_memory_dump_provider_android_unittest.cc | 48 |
3 files changed, 66 insertions, 13 deletions
diff --git a/components/tracing/BUILD.gn b/components/tracing/BUILD.gn index b8ab5a9..40e90f9 100644 --- a/components/tracing/BUILD.gn +++ b/components/tracing/BUILD.gn @@ -39,18 +39,21 @@ component("startup_tracing") { ] } -if (!is_android) { - source_set("unit_tests") { - testonly = true - - sources = [ - "trace_config_file_unittest.cc", - ] - - deps = [ - ":startup_tracing", - "//base/test:test_support", - "//testing/gtest", - ] +source_set("unit_tests") { + testonly = true + + sources = [ + "graphics_memory_dump_provider_android_unittest.cc", + ] + + deps = [ + ":tracing", + "//base/test:test_support", + "//testing/gtest", + ] + + if (!is_android) { + sources += [ "trace_config_file_unittest.cc" ] + deps += [ ":startup_tracing" ] } } diff --git a/components/tracing/graphics_memory_dump_provider_android.h b/components/tracing/graphics_memory_dump_provider_android.h index 3a9aa65..c9dfd21 100644 --- a/components/tracing/graphics_memory_dump_provider_android.h +++ b/components/tracing/graphics_memory_dump_provider_android.h @@ -8,6 +8,7 @@ #include <string> #include "base/containers/hash_tables.h" +#include "base/gtest_prod_util.h" #include "base/memory/singleton.h" #include "base/trace_event/memory_dump_provider.h" #include "components/tracing/tracing_export.h" @@ -29,6 +30,7 @@ class TRACING_EXPORT GraphicsMemoryDumpProvider base::trace_event::ProcessMemoryDump* pmd) override; private: + FRIEND_TEST_ALL_PREFIXES(GraphicsMemoryDumpProviderTest, ParseResponse); friend struct base::DefaultSingletonTraits<GraphicsMemoryDumpProvider>; void ParseResponseAndAddToDump(const char* buf, diff --git a/components/tracing/graphics_memory_dump_provider_android_unittest.cc b/components/tracing/graphics_memory_dump_provider_android_unittest.cc new file mode 100644 index 0000000..7b9d154 --- /dev/null +++ b/components/tracing/graphics_memory_dump_provider_android_unittest.cc @@ -0,0 +1,48 @@ +// Copyright 2015 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 "base/trace_event/memory_allocator_dump.h" +#include "base/trace_event/process_memory_dump.h" +#include "base/trace_event/trace_event_argument.h" +#include "components/tracing/graphics_memory_dump_provider_android.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace tracing { + +TEST(GraphicsMemoryDumpProviderTest, ParseResponse) { + const char* kDumpBaseName = GraphicsMemoryDumpProvider::kDumpBaseName; + + base::trace_event::ProcessMemoryDump pmd(nullptr); + auto instance = GraphicsMemoryDumpProvider::GetInstance(); + char buf[] = "graphics_total 12\ngraphics_pss 34\ngl_total 56\ngl_pss 78"; + instance->ParseResponseAndAddToDump(buf, strlen(buf), &pmd); + + // Check the "graphics" row. + auto mad = pmd.GetAllocatorDump(kDumpBaseName + std::string("graphics")); + ASSERT_TRUE(mad); + std::string json; + mad->attributes_for_testing()->AppendAsTraceFormat(&json); + ASSERT_EQ( + "{\"pss\":{\"type\":\"scalar\",\"units\":\"bytes\",\"value\":\"22\"}," + "\"total\":{\"type\":\"scalar\",\"units\":\"bytes\",\"value\":\"c\"}}", + json); + + // Check the "gl" row. + mad = pmd.GetAllocatorDump(kDumpBaseName + std::string("gl")); + ASSERT_TRUE(mad); + json = ""; + mad->attributes_for_testing()->AppendAsTraceFormat(&json); + ASSERT_EQ( + "{\"pss\":{\"type\":\"scalar\",\"units\":\"bytes\",\"value\":\"4e\"}," + "\"total\":{\"type\":\"scalar\",\"units\":\"bytes\",\"value\":\"38\"}}", + json); + + // Test for truncated input. + pmd.Clear(); + instance->ParseResponseAndAddToDump(buf, strlen(buf) - 14, &pmd); + ASSERT_TRUE(pmd.GetAllocatorDump(kDumpBaseName + std::string("graphics"))); + ASSERT_FALSE(pmd.GetAllocatorDump(kDumpBaseName + std::string("gl"))); +} + +} // namespace tracing |