Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Side by Side Diff: cc/debug/frame_timing_tracker_unittest.cc

Issue 1535833002: Delete CC. (Closed) Base URL: git@github.com:domokit/mojo.git@moz-5
Patch Set: rebase Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/debug/frame_timing_tracker.cc ('k') | cc/debug/frame_viewer_instrumentation.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <string>
6
7 #include "base/time/time.h"
8 #include "base/trace_event/trace_event_argument.h"
9 #include "base/values.h"
10 #include "cc/debug/frame_timing_tracker.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace cc {
14 namespace {
15
16 static std::string ToString(
17 scoped_ptr<FrameTimingTracker::CompositeTimingSet> timingset) {
18 scoped_refptr<base::trace_event::TracedValue> value =
19 new base::trace_event::TracedValue();
20 value->BeginArray("values");
21 for (const auto& it : *timingset) {
22 value->BeginDictionary();
23 value->SetInteger("rect_id", it.first);
24 value->BeginArray("events");
25 for (const auto& event : it.second) {
26 value->BeginDictionary();
27 value->SetInteger("frame_id", event.frame_id);
28 value->SetInteger("timestamp", event.timestamp.ToInternalValue());
29 value->EndDictionary();
30 }
31 value->EndArray();
32 value->EndDictionary();
33 }
34 value->EndArray();
35 return value->ToString();
36 }
37
38 TEST(FrameTimingTrackerTest, DefaultTrackerIsEmpty) {
39 scoped_ptr<FrameTimingTracker> tracker(FrameTimingTracker::Create());
40 EXPECT_EQ("{\"values\":[]}", ToString(tracker->GroupCountsByRectId()));
41 }
42
43 TEST(FrameTimingTrackerTest, NoFrameIdsIsEmpty) {
44 scoped_ptr<FrameTimingTracker> tracker(FrameTimingTracker::Create());
45 std::vector<std::pair<int, int64_t>> ids;
46 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(100), ids);
47 EXPECT_EQ("{\"values\":[]}", ToString(tracker->GroupCountsByRectId()));
48 }
49
50 TEST(FrameTimingTrackerTest, OneFrameId) {
51 scoped_ptr<FrameTimingTracker> tracker(FrameTimingTracker::Create());
52 std::vector<std::pair<int, int64_t>> ids;
53 ids.push_back(std::make_pair(1, 2));
54 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(100), ids);
55 EXPECT_EQ(
56 "{\"values\":[{\"events\":["
57 "{\"frame_id\":1,\"timestamp\":100}],\"rect_id\":2}]}",
58 ToString(tracker->GroupCountsByRectId()));
59 }
60
61 TEST(FrameTimingTrackerTest, UnsortedTimestampsIds) {
62 scoped_ptr<FrameTimingTracker> tracker(FrameTimingTracker::Create());
63 std::vector<std::pair<int, int64_t>> ids;
64 ids.push_back(std::make_pair(1, 2));
65 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(200), ids);
66 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(400), ids);
67 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(100), ids);
68 EXPECT_EQ(
69 "{\"values\":[{\"events\":["
70 "{\"frame_id\":1,\"timestamp\":100},"
71 "{\"frame_id\":1,\"timestamp\":200},"
72 "{\"frame_id\":1,\"timestamp\":400}],\"rect_id\":2}]}",
73 ToString(tracker->GroupCountsByRectId()));
74 }
75
76 TEST(FrameTimingTrackerTest, MultipleFrameIds) {
77 scoped_ptr<FrameTimingTracker> tracker(FrameTimingTracker::Create());
78
79 std::vector<std::pair<int, int64_t>> ids200;
80 ids200.push_back(std::make_pair(1, 2));
81 ids200.push_back(std::make_pair(1, 3));
82 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(200), ids200);
83
84 std::vector<std::pair<int, int64_t>> ids400;
85 ids400.push_back(std::make_pair(2, 2));
86 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(400), ids400);
87
88 std::vector<std::pair<int, int64_t>> ids100;
89 ids100.push_back(std::make_pair(3, 2));
90 ids100.push_back(std::make_pair(2, 3));
91 ids100.push_back(std::make_pair(3, 4));
92 tracker->SaveTimeStamps(base::TimeTicks::FromInternalValue(100), ids100);
93
94 std::string result = ToString(tracker->GroupCountsByRectId());
95
96 EXPECT_EQ(strlen(
97 "{\"values\":[{\"events\":["
98 "{\"frame_id\":3,\"timestamp\":100},"
99 "{\"frame_id\":1,\"timestamp\":200},"
100 "{\"frame_id\":2,\"timestamp\":400}],\"rect_id\":2},"
101 "{\"events\":["
102 "{\"frame_id\":2,\"timestamp\":100},"
103 "{\"frame_id\":1,\"timestamp\":200}],\"rect_id\":3},"
104 "{\"events\":["
105 "{\"frame_id\":3,\"timestamp\":100}],\"rect_id\":4}"
106 "]}"),
107 result.size());
108 EXPECT_NE(std::string::npos,
109 result.find(
110 "{\"frame_id\":3,\"timestamp\":100},"
111 "{\"frame_id\":1,\"timestamp\":200},"
112 "{\"frame_id\":2,\"timestamp\":400}],\"rect_id\":2}"));
113 EXPECT_NE(std::string::npos,
114 result.find(
115 "{\"events\":["
116 "{\"frame_id\":2,\"timestamp\":100},"
117 "{\"frame_id\":1,\"timestamp\":200}],\"rect_id\":3}"));
118 EXPECT_NE(std::string::npos,
119 result.find(
120 "{\"events\":["
121 "{\"frame_id\":3,\"timestamp\":100}],\"rect_id\":4}"));
122 }
123
124 } // namespace
125 } // namespace cc
OLDNEW
« no previous file with comments | « cc/debug/frame_timing_tracker.cc ('k') | cc/debug/frame_viewer_instrumentation.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698