diff options
Diffstat (limited to 'cc/scheduler/scheduler_state_machine_unittest.cc')
-rw-r--r-- | cc/scheduler/scheduler_state_machine_unittest.cc | 268 |
1 files changed, 65 insertions, 203 deletions
diff --git a/cc/scheduler/scheduler_state_machine_unittest.cc b/cc/scheduler/scheduler_state_machine_unittest.cc index f31dabb..2e4a7bb 100644 --- a/cc/scheduler/scheduler_state_machine_unittest.cc +++ b/cc/scheduler/scheduler_state_machine_unittest.cc @@ -11,6 +11,11 @@ EXPECT_EQ(action, state.NextAction()) << *state.AsValue(); \ if (action == SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE || \ action == SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED) { \ + if (SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW == \ + state.CommitState() && \ + SchedulerStateMachine::OUTPUT_SURFACE_ACTIVE != \ + state.output_surface_state()) \ + return; \ EXPECT_EQ(SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_INSIDE_DEADLINE, \ state.begin_impl_frame_state()) \ << *state.AsValue(); \ @@ -40,8 +45,7 @@ const SchedulerStateMachine::CommitState all_commit_states[] = { SchedulerStateMachine::COMMIT_STATE_BEGIN_MAIN_FRAME_SENT, SchedulerStateMachine::COMMIT_STATE_BEGIN_MAIN_FRAME_STARTED, SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, - SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_ACTIVATION, - SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW}; + SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, }; // Exposes the protected state fields of the SchedulerStateMachine for testing class StateMachine : public SchedulerStateMachine { @@ -81,7 +85,7 @@ class StateMachine : public SchedulerStateMachine { void SetNeedsForcedRedrawForTimeout(bool b) { forced_redraw_state_ = FORCED_REDRAW_STATE_WAITING_FOR_COMMIT; - active_tree_needs_first_draw_ = true; + commit_state_ = COMMIT_STATE_WAITING_FOR_FIRST_DRAW; } bool NeedsForcedRedrawForTimeout() const { return forced_redraw_state_ != FORCED_REDRAW_STATE_IDLE; @@ -89,7 +93,7 @@ class StateMachine : public SchedulerStateMachine { void SetNeedsForcedRedrawForReadback() { readback_state_ = READBACK_STATE_WAITING_FOR_DRAW_AND_READBACK; - active_tree_needs_first_draw_ = true; + commit_state_ = COMMIT_STATE_WAITING_FOR_FIRST_DRAW; } bool NeedsForcedRedrawForReadback() const { @@ -181,135 +185,6 @@ TEST(SchedulerStateMachineTest, TestNextActionBeginsMainFrameIfNeeded) { } } -// Explicitly test main_frame_before_draw_enabled = false -TEST(SchedulerStateMachineTest, MainFrameBeforeDrawDisabled) { - SchedulerSettings scheduler_settings; - scheduler_settings.impl_side_painting = true; - scheduler_settings.main_frame_before_draw_enabled = false; - StateMachine state(scheduler_settings); - state.SetCommitState(SchedulerStateMachine::COMMIT_STATE_IDLE); - state.SetCanStart(); - state.UpdateState(state.NextAction()); - state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); - state.SetNeedsRedraw(false); - state.SetVisible(true); - state.SetCanDraw(true); - state.SetNeedsCommit(); - - EXPECT_TRUE(state.BeginImplFrameNeeded()); - - // Commit to the pending tree. - state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - state.NotifyBeginMainFrameStarted(); - state.NotifyReadyToCommit(); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - EXPECT_EQ(state.CommitState(), - SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW); - - state.OnBeginImplFrameDeadline(); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - EXPECT_EQ(state.CommitState(), - SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW); - - // Verify that the next commit doesn't start until the previous - // commit has been drawn. - state.SetNeedsCommit(); - state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - - // Verify NotifyReadyToActivate unblocks activation, draw, and - // commit in that order. - state.NotifyReadyToActivate(); - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_ACTIVATE_PENDING_TREE); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - EXPECT_EQ(state.CommitState(), - SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW); - - EXPECT_TRUE(state.ShouldTriggerBeginImplFrameDeadlineEarly()); - state.OnBeginImplFrameDeadline(); - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); - EXPECT_EQ(state.CommitState(), SchedulerStateMachine::COMMIT_STATE_IDLE); - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - EXPECT_EQ(state.CommitState(), - SchedulerStateMachine::COMMIT_STATE_BEGIN_MAIN_FRAME_SENT); - - state.NotifyBeginMainFrameStarted(); - state.NotifyReadyToCommit(); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - EXPECT_EQ(state.CommitState(), - SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW); -} - -// Explicitly test main_frame_before_activation_enabled = true -TEST(SchedulerStateMachineTest, MainFrameBeforeActivationEnabled) { - SchedulerSettings scheduler_settings; - scheduler_settings.impl_side_painting = true; - scheduler_settings.main_frame_before_activation_enabled = true; - StateMachine state(scheduler_settings); - state.SetCommitState(SchedulerStateMachine::COMMIT_STATE_IDLE); - state.SetCanStart(); - state.UpdateState(state.NextAction()); - state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); - state.SetNeedsRedraw(false); - state.SetVisible(true); - state.SetCanDraw(true); - state.SetNeedsCommit(); - - EXPECT_TRUE(state.BeginImplFrameNeeded()); - - // Commit to the pending tree. - state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - - state.NotifyBeginMainFrameStarted(); - state.NotifyReadyToCommit(); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - EXPECT_EQ(state.CommitState(), SchedulerStateMachine::COMMIT_STATE_IDLE); - - state.OnBeginImplFrameDeadline(); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - - // Verify that the next commit starts while there is still a pending tree. - state.SetNeedsCommit(); - state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - - // Verify the pending commit doesn't overwrite the pending - // tree until the pending tree has been activated. - state.NotifyBeginMainFrameStarted(); - state.NotifyReadyToCommit(); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - - // Verify NotifyReadyToActivate unblocks activation, draw, and - // commit in that order. - state.NotifyReadyToActivate(); - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_ACTIVATE_PENDING_TREE); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - - EXPECT_TRUE(state.ShouldTriggerBeginImplFrameDeadlineEarly()); - state.OnBeginImplFrameDeadline(); - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - EXPECT_EQ(state.CommitState(), SchedulerStateMachine::COMMIT_STATE_IDLE); -} - TEST(SchedulerStateMachineTest, TestFailedDrawForAnimationCheckerboardSetsNeedsCommitAndDoesNotDrawAgain) { SchedulerSettings default_scheduler_settings; @@ -413,11 +288,9 @@ TEST(SchedulerStateMachineTest, EXPECT_TRUE(state.RedrawPending()); } -void TestFailedDrawsEventuallyForceDrawAfterNextCommit( - bool main_frame_before_draw_enabled) { +TEST(SchedulerStateMachineTest, + TestFailedDrawsWillEventuallyForceADrawAfterTheNextCommit) { SchedulerSettings scheduler_settings; - scheduler_settings.main_frame_before_draw_enabled = - main_frame_before_draw_enabled; scheduler_settings.maximum_number_of_failed_draws_before_draw_is_forced_ = 1; StateMachine state(scheduler_settings); state.SetCanStart(); @@ -460,30 +333,12 @@ void TestFailedDrawsEventuallyForceDrawAfterNextCommit( // The redraw should be forced at the end of the next BeginImplFrame. state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); - if (main_frame_before_draw_enabled) { - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); - } EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); state.OnBeginImplFrameDeadline(); EXPECT_ACTION_UPDATE_STATE( SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED); } -TEST(SchedulerStateMachineTest, - TestFailedDrawsEventuallyForceDrawAfterNextCommit) { - bool main_frame_before_draw_enabled = false; - TestFailedDrawsEventuallyForceDrawAfterNextCommit( - main_frame_before_draw_enabled); -} - -TEST(SchedulerStateMachineTest, - TestFailedDrawsEventuallyForceDrawAfterNextCommit_CommitBeforeDraw) { - bool main_frame_before_draw_enabled = true; - TestFailedDrawsEventuallyForceDrawAfterNextCommit( - main_frame_before_draw_enabled); -} - TEST(SchedulerStateMachineTest, TestFailedDrawsDoNotRestartForcedDraw) { SchedulerSettings scheduler_settings; int draw_limit = 1; @@ -665,14 +520,19 @@ TEST(SchedulerStateMachineTest, TestNextActionDrawsOnBeginImplFrame) { } } - // When in BeginImplFrame deadline we should always draw for SetNeedsRedraw - // except if we're ready to commit, in which case we expect a commit first. - // SetNeedsForcedRedrawForReadback should take precedence over all and - // issue a readback. + // When in BeginImplFrame deadline we should always draw for SetNeedsRedraw or + // SetNeedsForcedRedrawForReadback have been called... except if we're + // ready to commit, in which case we expect a commit first. for (size_t i = 0; i < num_commit_states; ++i) { for (size_t j = 0; j < 2; ++j) { bool request_readback = j; + // Skip invalid states + if (request_readback && + (SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW != + all_commit_states[i])) + continue; + StateMachine state(default_scheduler_settings); state.SetCanStart(); state.UpdateState(state.NextAction()); @@ -689,11 +549,15 @@ TEST(SchedulerStateMachineTest, TestNextActionDrawsOnBeginImplFrame) { } SchedulerStateMachine::Action expected_action; - if (request_readback) { - expected_action = SchedulerStateMachine::ACTION_DRAW_AND_READBACK; - } else if (all_commit_states[i] == - SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT) { + if (all_commit_states[i] == + SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT) { expected_action = SchedulerStateMachine::ACTION_COMMIT; + } else if (request_readback) { + if (all_commit_states[i] == + SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW) + expected_action = SchedulerStateMachine::ACTION_DRAW_AND_READBACK; + else + expected_action = SchedulerStateMachine::ACTION_NONE; } else { expected_action = SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE; @@ -702,13 +566,13 @@ TEST(SchedulerStateMachineTest, TestNextActionDrawsOnBeginImplFrame) { // Case 1: needs_commit=false. EXPECT_NE(state.BeginImplFrameNeeded(), request_readback) << *state.AsValue(); - EXPECT_EQ(state.NextAction(), expected_action) << *state.AsValue(); + EXPECT_EQ(expected_action, state.NextAction()) << *state.AsValue(); // Case 2: needs_commit=true. state.SetNeedsCommit(); EXPECT_NE(state.BeginImplFrameNeeded(), request_readback) << *state.AsValue(); - EXPECT_EQ(state.NextAction(), expected_action) << *state.AsValue(); + EXPECT_EQ(expected_action, state.NextAction()) << *state.AsValue(); } } } @@ -779,6 +643,8 @@ TEST(SchedulerStateMachineTest, state.UpdateState(state.NextAction()); state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); + state.SetCommitState( + SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW); state.SetActiveTreeNeedsFirstDraw(true); state.SetNeedsCommit(); state.SetNeedsRedraw(true); @@ -797,11 +663,9 @@ TEST(SchedulerStateMachineTest, EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); } -void TestSetNeedsCommitIsNotLost(bool main_frame_before_draw_enabled) { - SchedulerSettings scheduler_settings; - scheduler_settings.main_frame_before_draw_enabled = - main_frame_before_draw_enabled; - StateMachine state(scheduler_settings); +TEST(SchedulerStateMachineTest, TestsetNeedsCommitIsNotLost) { + SchedulerSettings default_scheduler_settings; + StateMachine state(default_scheduler_settings); state.SetCanStart(); state.UpdateState(state.NextAction()); state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); @@ -853,36 +717,20 @@ void TestSetNeedsCommitIsNotLost(bool main_frame_before_draw_enabled) { state.begin_impl_frame_state()); EXPECT_EQ(SchedulerStateMachine::ACTION_COMMIT, state.NextAction()); - // Finish the commit, then make sure we start the next commit immediately - // and draw on the next BeginImplFrame. + // Commit and make sure we draw on next BeginImplFrame EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - if (main_frame_before_draw_enabled) { - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); - } EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); - state.OnBeginImplFrameDeadline(); - - EXPECT_TRUE(state.active_tree_needs_first_draw()); + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, + state.CommitState()); EXPECT_ACTION_UPDATE_STATE( SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS); - if (!main_frame_before_draw_enabled) { - EXPECT_ACTION_UPDATE_STATE( - SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); - } - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); -} -TEST(SchedulerStateMachineTest, TestSetNeedsCommitIsNotLost) { - bool main_frame_before_draw_enabled = false; - TestSetNeedsCommitIsNotLost(main_frame_before_draw_enabled); -} - -TEST(SchedulerStateMachineTest, TestSetNeedsCommitIsNotLost_CommitBeforeDraw) { - bool main_frame_before_draw_enabled = true; - TestSetNeedsCommitIsNotLost(main_frame_before_draw_enabled); + // Verify that another commit will start immediately after draw. + EXPECT_ACTION_UPDATE_STATE( + SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); } TEST(SchedulerStateMachineTest, TestFullCycle) { @@ -914,7 +762,8 @@ TEST(SchedulerStateMachineTest, TestFullCycle) { // Commit. EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - EXPECT_TRUE(state.active_tree_needs_first_draw()); + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, + state.CommitState()); EXPECT_TRUE(state.needs_redraw()); // Expect to do nothing until BeginImplFrame deadline @@ -965,7 +814,8 @@ TEST(SchedulerStateMachineTest, TestFullCycleWithCommitRequestInbetween) { // First commit. EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - EXPECT_TRUE(state.active_tree_needs_first_draw()); + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, + state.CommitState()); EXPECT_TRUE(state.needs_redraw()); // Expect to do nothing until BeginImplFrame deadline. @@ -1255,7 +1105,8 @@ TEST(SchedulerStateMachineTest, TestContextLostWhileCommitInProgress) { // We will abort the draw when the output surface is lost if we are // waiting for the first draw to unblock the main thread. - EXPECT_TRUE(state.active_tree_needs_first_draw()); + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, + state.CommitState()); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT); // Expect to begin context recreation only in BEGIN_IMPL_FRAME_STATE_IDLE @@ -1317,7 +1168,8 @@ TEST(SchedulerStateMachineTest, state.NotifyBeginMainFrameStarted(); state.NotifyReadyToCommit(); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - EXPECT_TRUE(state.active_tree_needs_first_draw()); + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, + state.CommitState()); // Because the output surface is missing, we expect the draw to abort. EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT); @@ -1376,6 +1228,8 @@ TEST(SchedulerStateMachineTest, TestFinishAllRenderingWhileContextLost) { state.DidLoseOutputSurface(); // Ask a forced redraw for readback and verify it ocurrs. + state.SetCommitState( + SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW); state.SetNeedsForcedRedrawForReadback(); state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); @@ -1403,6 +1257,8 @@ TEST(SchedulerStateMachineTest, TestFinishAllRenderingWhileContextLost) { SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_CREATION); // Ask a readback and verify it occurs. + state.SetCommitState( + SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW); state.SetNeedsForcedRedrawForReadback(); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); @@ -1545,7 +1401,8 @@ TEST(SchedulerStateMachineTest, TestFinishCommitWhenCommitInProgress) { EXPECT_EQ(SchedulerStateMachine::ACTION_COMMIT, state.NextAction()); state.UpdateState(state.NextAction()); - EXPECT_TRUE(state.active_tree_needs_first_draw()); + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, + state.CommitState()); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT); } @@ -1565,7 +1422,8 @@ TEST(SchedulerStateMachineTest, TestFinishCommitWhenForcedCommitInProgress) { state.NotifyReadyToCommit(); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - EXPECT_TRUE(state.active_tree_needs_first_draw()); + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, + state.CommitState()); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); // When the readback interrupts the normal commit, we should not get @@ -1636,7 +1494,8 @@ TEST(SchedulerStateMachineTest, TestImmediateFinishCommit) { state.CommitState()); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - EXPECT_TRUE(state.active_tree_needs_first_draw()); + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, + state.CommitState()); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS); @@ -1672,7 +1531,8 @@ TEST(SchedulerStateMachineTest, TestImmediateFinishCommitDuringCommit) { state.CommitState()); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - EXPECT_TRUE(state.active_tree_needs_first_draw()); + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, + state.CommitState()); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS); @@ -1706,7 +1566,8 @@ TEST(SchedulerStateMachineTest, ImmediateBeginMainFrameAbortedWhileInvisible) { state.CommitState()); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - EXPECT_TRUE(state.active_tree_needs_first_draw()); + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, + state.CommitState()); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS); @@ -1747,7 +1608,8 @@ TEST(SchedulerStateMachineTest, ImmediateFinishCommitWhileCantDraw) { state.CommitState()); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); - EXPECT_TRUE(state.active_tree_needs_first_draw()); + EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, + state.CommitState()); EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DRAW_SUCCESS); |