diff options
Diffstat (limited to 'services/surfaceflinger/tests/unittests/EventThreadTest.cpp')
-rw-r--r-- | services/surfaceflinger/tests/unittests/EventThreadTest.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/services/surfaceflinger/tests/unittests/EventThreadTest.cpp b/services/surfaceflinger/tests/unittests/EventThreadTest.cpp index 3a7cfba805..e499ff58f7 100644 --- a/services/surfaceflinger/tests/unittests/EventThreadTest.cpp +++ b/services/surfaceflinger/tests/unittests/EventThreadTest.cpp @@ -44,6 +44,7 @@ public: MOCK_METHOD1(setVSyncEnabled, void(bool)); MOCK_METHOD1(setCallback, void(VSyncSource::Callback*)); MOCK_METHOD1(setPhaseOffset, void(nsecs_t)); + MOCK_METHOD1(pauseVsyncCallback, void(bool)); }; } // namespace @@ -71,6 +72,7 @@ protected: void expectVSyncSetEnabledCallReceived(bool expectedState); void expectVSyncSetPhaseOffsetCallReceived(nsecs_t expectedPhaseOffset); + void expectVSyncPauseVsyncCallbackCallReceived(bool expectedPause); VSyncSource::Callback* expectVSyncSetCallbackCallReceived(); void expectInterceptCallReceived(nsecs_t expectedTimestamp); void expectVsyncEventReceivedByConnection(const char* name, @@ -83,6 +85,7 @@ protected: AsyncCallRecorder<void (*)(bool)> mVSyncSetEnabledCallRecorder; AsyncCallRecorder<void (*)(VSyncSource::Callback*)> mVSyncSetCallbackCallRecorder; AsyncCallRecorder<void (*)(nsecs_t)> mVSyncSetPhaseOffsetCallRecorder; + AsyncCallRecorder<void (*)(bool)> mVSyncPauseVsyncCallbackCallRecorder; AsyncCallRecorder<void (*)()> mResyncCallRecorder; AsyncCallRecorder<void (*)()> mResetIdleTimerCallRecorder; AsyncCallRecorder<void (*)(nsecs_t)> mInterceptVSyncCallRecorder; @@ -108,6 +111,9 @@ EventThreadTest::EventThreadTest() { EXPECT_CALL(mVSyncSource, setPhaseOffset(_)) .WillRepeatedly(Invoke(mVSyncSetPhaseOffsetCallRecorder.getInvocable())); + EXPECT_CALL(mVSyncSource, pauseVsyncCallback(_)) + .WillRepeatedly(Invoke(mVSyncPauseVsyncCallbackCallRecorder.getInvocable())); + createThread(); mConnection = createConnection(mConnectionEventCallRecorder); @@ -157,6 +163,12 @@ void EventThreadTest::expectVSyncSetPhaseOffsetCallReceived(nsecs_t expectedPhas EXPECT_EQ(expectedPhaseOffset, std::get<0>(args.value())); } +void EventThreadTest::expectVSyncPauseVsyncCallbackCallReceived(bool expectedPause) { + auto args = mVSyncPauseVsyncCallbackCallRecorder.waitForCall(); + ASSERT_TRUE(args.has_value()); + EXPECT_EQ(expectedPause, std::get<0>(args.value())); +} + VSyncSource::Callback* EventThreadTest::expectVSyncSetCallbackCallReceived() { auto callbackSet = mVSyncSetCallbackCallRecorder.waitForCall(); return callbackSet.has_value() ? std::get<0>(callbackSet.value()) : nullptr; @@ -406,6 +418,16 @@ TEST_F(EventThreadTest, setPhaseOffsetForwardsToVSyncSource) { expectVSyncSetPhaseOffsetCallReceived(321); } +TEST_F(EventThreadTest, pauseVsyncCallbackForwardsToVSyncSource) { + mThread->pauseVsyncCallback(true); + expectVSyncPauseVsyncCallbackCallReceived(true); +} + +TEST_F(EventThreadTest, resumeVsyncCallbackForwardsToVSyncSource) { + mThread->pauseVsyncCallback(false); + expectVSyncPauseVsyncCallbackCallReceived(false); +} + TEST_F(EventThreadTest, postHotplugInternalDisconnect) { mThread->onHotplugReceived(INTERNAL_DISPLAY_ID, false); expectHotplugEventReceivedByConnection(INTERNAL_DISPLAY_ID, false); |