1 #include <gmock/gmock.h>
2 #include <gtest/gtest.h>
3
4 #include "VkQsriTimeline.h"
5
6 namespace goldfish_vk {
7 namespace {
8 using ::testing::InSequence;
9 using ::testing::MockFunction;
10
TEST(VkQsriTImelineTest,signalFirstRegisterCallbackLater)11 TEST(VkQsriTImelineTest, signalFirstRegisterCallbackLater) {
12 MockFunction<void()> mockCallback1, mockCallback2;
13 VkQsriTimeline qsriTimeline;
14 {
15 InSequence s;
16 EXPECT_CALL(mockCallback1, Call()).Times(1);
17 EXPECT_CALL(mockCallback2, Call()).Times(1);
18 }
19 qsriTimeline.signalNextPresentAndPoll();
20 qsriTimeline.signalNextPresentAndPoll();
21 qsriTimeline.registerCallbackForNextPresentAndPoll(mockCallback1.AsStdFunction());
22 qsriTimeline.registerCallbackForNextPresentAndPoll(mockCallback2.AsStdFunction());
23 }
24
TEST(VkQsriTImelineTest,registerCallbackFirstSignalLater)25 TEST(VkQsriTImelineTest, registerCallbackFirstSignalLater) {
26 MockFunction<void()> mockCallback1, mockCallback2, beforeSignal;
27 VkQsriTimeline qsriTimeline;
28 {
29 InSequence s;
30 EXPECT_CALL(beforeSignal, Call()).Times(1);
31 EXPECT_CALL(mockCallback1, Call()).Times(1);
32 EXPECT_CALL(mockCallback2, Call()).Times(1);
33 }
34 qsriTimeline.registerCallbackForNextPresentAndPoll(mockCallback1.AsStdFunction());
35 qsriTimeline.registerCallbackForNextPresentAndPoll(mockCallback2.AsStdFunction());
36 beforeSignal.Call();
37 qsriTimeline.signalNextPresentAndPoll();
38 qsriTimeline.signalNextPresentAndPoll();
39 }
40
41 } // namespace
42 } // namespace goldfish_vk