summaryrefslogtreecommitdiffstats
path: root/components/tracing
diff options
context:
space:
mode:
authorprimiano <primiano@chromium.org>2015-10-15 05:37:02 -0700
committerCommit bot <commit-bot@chromium.org>2015-10-15 12:37:56 +0000
commit6e67febcc291b3b803445ca9275db0f9804c4027 (patch)
treecda91c671073d961a238eecc0cd1bbca04cb551a /components/tracing
parent9cb42e6b8df1acf46fcb6bb7fd442ccc1ac80f7a (diff)
downloadchromium_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.gn29
-rw-r--r--components/tracing/graphics_memory_dump_provider_android.h2
-rw-r--r--components/tracing/graphics_memory_dump_provider_android_unittest.cc48
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