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

Side by Side Diff: cc/test/begin_frame_source_test.h

Issue 2527283003: cc: Introduce BeginFrame sequence numbers and acknowledgements.
Patch Set: Address Brian's comments. Created 4 years 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/test/begin_frame_args_test.cc ('k') | cc/test/begin_frame_source_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CC_TEST_BEGIN_FRAME_SOURCE_TEST_H_ 5 #ifndef CC_TEST_BEGIN_FRAME_SOURCE_TEST_H_
6 #define CC_TEST_BEGIN_FRAME_SOURCE_TEST_H_ 6 #define CC_TEST_BEGIN_FRAME_SOURCE_TEST_H_
7 7
8 #include "base/trace_event/trace_event_argument.h" 8 #include "base/trace_event/trace_event_argument.h"
9 #include "cc/scheduler/begin_frame_source.h" 9 #include "cc/scheduler/begin_frame_source.h"
10 #include "cc/test/begin_frame_args_test.h" 10 #include "cc/test/begin_frame_args_test.h"
11 #include "testing/gmock/include/gmock/gmock.h" 11 #include "testing/gmock/include/gmock/gmock.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 // Macros to help set up expected calls on the MockBeginFrameObserver. 14 // Macros to help set up expected calls on the MockBeginFrameObserver.
15 #define EXPECT_BEGIN_FRAME_DROP(obs, frame_time, deadline, interval) \ 15 #define EXPECT_BEGIN_FRAME_DROP(obs, source_id, sequence_number, frame_time, \
16 EXPECT_CALL((obs), \ 16 deadline, interval) \
17 OnBeginFrame(CreateBeginFrameArgsForTesting( \ 17 EXPECT_CALL((obs), OnBeginFrame(CreateBeginFrameArgsForTesting( \
18 BEGINFRAME_FROM_HERE, frame_time, deadline, interval))) \ 18 BEGINFRAME_FROM_HERE, source_id, sequence_number, \
19 .Times(1) \ 19 frame_time, deadline, interval))) \
20 .Times(1) \
20 .InSequence((obs).sequence) 21 .InSequence((obs).sequence)
21 22
22 #define EXPECT_BEGIN_FRAME_USED(obs, frame_time, deadline, interval) \ 23 #define EXPECT_BEGIN_FRAME_USED(obs, source_id, sequence_number, frame_time, \
23 EXPECT_CALL((obs), \ 24 deadline, interval) \
24 OnBeginFrame(CreateBeginFrameArgsForTesting( \ 25 EXPECT_CALL((obs), OnBeginFrame(CreateBeginFrameArgsForTesting( \
25 BEGINFRAME_FROM_HERE, frame_time, deadline, interval))) \ 26 BEGINFRAME_FROM_HERE, source_id, sequence_number, \
26 .InSequence((obs).sequence) \ 27 frame_time, deadline, interval))) \
28 .InSequence((obs).sequence) \
27 .WillOnce(::testing::SaveArg<0>(&((obs).last_begin_frame_args))) 29 .WillOnce(::testing::SaveArg<0>(&((obs).last_begin_frame_args)))
28 30
29 #define EXPECT_BEGIN_FRAME_USED_MISSED(obs, frame_time, deadline, interval) \ 31 #define EXPECT_BEGIN_FRAME_USED_MISSED(obs, source_id, sequence_number, \
30 EXPECT_CALL((obs), OnBeginFrame(CreateBeginFrameArgsForTesting( \ 32 frame_time, deadline, interval) \
31 BEGINFRAME_FROM_HERE, frame_time, deadline, interval, \ 33 EXPECT_CALL( \
32 BeginFrameArgs::MISSED))) \ 34 (obs), OnBeginFrame(CreateBeginFrameArgsForTesting( \
35 BEGINFRAME_FROM_HERE, source_id, sequence_number, frame_time, \
36 deadline, interval, BeginFrameArgs::MISSED))) \
33 .InSequence((obs).sequence) \ 37 .InSequence((obs).sequence) \
34 .WillOnce(::testing::SaveArg<0>(&((obs).last_begin_frame_args))) 38 .WillOnce(::testing::SaveArg<0>(&((obs).last_begin_frame_args)))
35 39
36 #define EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, paused) \ 40 #define EXPECT_BEGIN_FRAME_SOURCE_PAUSED(obs, paused) \
37 EXPECT_CALL((obs), OnBeginFrameSourcePausedChanged(paused)) \ 41 EXPECT_CALL((obs), OnBeginFrameSourcePausedChanged(paused)) \
38 .Times(1) \ 42 .Times(1) \
39 .InSequence((obs).sequence) 43 .InSequence((obs).sequence)
40 44
41 // Macros to send BeginFrameArgs on a FakeBeginFrameSink (and verify resulting 45 // Macros to send BeginFrameArgs on a FakeBeginFrameSink (and verify resulting
42 // observer behaviour). 46 // observer behaviour).
43 #define SEND_BEGIN_FRAME(args_equal_to, source, frame_time, deadline, \ 47 #define SEND_BEGIN_FRAME(args_equal_to, source, sequence_number, frame_time, \
44 interval) \ 48 deadline, interval) \
45 { \ 49 { \
46 BeginFrameArgs old_args = (source).TestLastUsedBeginFrameArgs(); \ 50 BeginFrameArgs old_args = (source).TestLastUsedBeginFrameArgs(); \
47 BeginFrameArgs new_args = CreateBeginFrameArgsForTesting( \ 51 BeginFrameArgs new_args = CreateBeginFrameArgsForTesting( \
48 BEGINFRAME_FROM_HERE, frame_time, deadline, interval); \ 52 BEGINFRAME_FROM_HERE, source.source_id(), sequence_number, frame_time, \
49 ASSERT_FALSE(old_args == new_args); \ 53 deadline, interval); \
50 (source).TestOnBeginFrame(new_args); \ 54 ASSERT_FALSE(old_args == new_args); \
51 EXPECT_EQ(args_equal_to, (source).TestLastUsedBeginFrameArgs()); \ 55 (source).TestOnBeginFrame(new_args); \
56 EXPECT_EQ(args_equal_to, (source).TestLastUsedBeginFrameArgs()); \
52 } 57 }
53 58
54 // When dropping LastUsedBeginFrameArgs **shouldn't** change. 59 // When dropping LastUsedBeginFrameArgs **shouldn't** change.
55 #define SEND_BEGIN_FRAME_DROP(source, frame_time, deadline, interval) \ 60 #define SEND_BEGIN_FRAME_DROP(source, sequence_number, frame_time, deadline, \
56 SEND_BEGIN_FRAME(old_args, source, frame_time, deadline, interval); 61 interval) \
62 SEND_BEGIN_FRAME(old_args, source, sequence_number, frame_time, deadline, \
63 interval);
57 64
58 // When used LastUsedBeginFrameArgs **should** be updated. 65 // When used LastUsedBeginFrameArgs **should** be updated.
59 #define SEND_BEGIN_FRAME_USED(source, frame_time, deadline, interval) \ 66 #define SEND_BEGIN_FRAME_USED(source, sequence_number, frame_time, deadline, \
60 SEND_BEGIN_FRAME(new_args, source, frame_time, deadline, interval); 67 interval) \
68 SEND_BEGIN_FRAME(new_args, source, sequence_number, frame_time, deadline, \
69 interval);
61 70
62 namespace cc { 71 namespace cc {
63 72
64 class MockBeginFrameObserver : public BeginFrameObserver { 73 class MockBeginFrameObserver : public BeginFrameObserver {
65 public: 74 public:
66 MOCK_METHOD1(OnBeginFrame, void(const BeginFrameArgs&)); 75 MOCK_METHOD1(OnBeginFrame, void(const BeginFrameArgs&));
67 MOCK_CONST_METHOD0(LastUsedBeginFrameArgs, const BeginFrameArgs&()); 76 MOCK_CONST_METHOD0(LastUsedBeginFrameArgs, const BeginFrameArgs&());
68 MOCK_METHOD1(OnBeginFrameSourcePausedChanged, void(bool)); 77 MOCK_METHOD1(OnBeginFrameSourcePausedChanged, void(bool));
69 78
70 virtual void AsValueInto(base::trace_event::TracedValue* dict) const; 79 virtual void AsValueInto(base::trace_event::TracedValue* dict) const;
71 80
72 // A value different from the normal default returned by a BeginFrameObserver 81 // A value different from the normal default returned by a BeginFrameObserver
73 // so it is easiable traced back here. 82 // so it is easiable traced back here.
74 static const BeginFrameArgs kDefaultBeginFrameArgs; 83 static const BeginFrameArgs kDefaultBeginFrameArgs;
75 84
76 MockBeginFrameObserver(); 85 MockBeginFrameObserver();
77 virtual ~MockBeginFrameObserver(); 86 virtual ~MockBeginFrameObserver();
78 87
79 BeginFrameArgs last_begin_frame_args; 88 BeginFrameArgs last_begin_frame_args;
80 ::testing::Sequence sequence; 89 ::testing::Sequence sequence;
81 }; 90 };
82 91
83 } // namespace cc 92 } // namespace cc
84 93
85 #endif // CC_TEST_BEGIN_FRAME_SOURCE_TEST_H_ 94 #endif // CC_TEST_BEGIN_FRAME_SOURCE_TEST_H_
OLDNEW
« no previous file with comments | « cc/test/begin_frame_args_test.cc ('k') | cc/test/begin_frame_source_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698