Chromium Code Reviews| Index: cc/scheduler/scheduler_state_machine_unittest.cc |
| diff --git a/cc/scheduler/scheduler_state_machine_unittest.cc b/cc/scheduler/scheduler_state_machine_unittest.cc |
| index 08e7d8229f5c280d624eeab202c3b7bbe61f4ac7..1a2f0f23b4005939d855b12b79ebf89d264f630b 100644 |
| --- a/cc/scheduler/scheduler_state_machine_unittest.cc |
| +++ b/cc/scheduler/scheduler_state_machine_unittest.cc |
| @@ -7,20 +7,40 @@ |
| #include "cc/scheduler/scheduler.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| -#define EXPECT_ACTION_UPDATE_STATE(action) \ |
| - EXPECT_EQ(action, state.NextAction()) << *state.AsValue(); \ |
| - state.UpdateState(action); |
| +#define EXPECT_ACTION_UPDATE_STATE(action) \ |
| + EXPECT_EQ(action, state.NextAction()) << *state.ToValue(); \ |
| + if (action == SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE || \ |
|
Sami
2013/08/30 13:49:06
Nit: maybe separate this part into a normal functi
brianderson
2013/09/03 22:51:47
I wanted to do that, but then we lose information
|
| + 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_FRAME_STATE_INSIDE_DEADLINE, \ |
| + state.begin_frame_state()) \ |
| + << *state.ToValue(); \ |
| + } \ |
| + state.UpdateState(action); \ |
| + if (action == SchedulerStateMachine::ACTION_NONE) { \ |
| + state.AdvanceBeginFrameStateWhenNoActionsRemain(); \ |
| + } |
| namespace cc { |
| namespace { |
| +const SchedulerStateMachine::BeginFrameState all_begin_frame_states[] = { |
| + SchedulerStateMachine::BEGIN_FRAME_STATE_IDLE, |
| + SchedulerStateMachine::BEGIN_FRAME_STATE_INSIDE_BEGIN_FRAME, |
| + SchedulerStateMachine::BEGIN_FRAME_STATE_DEADLINE_PENDING, |
| + SchedulerStateMachine::BEGIN_FRAME_STATE_INSIDE_DEADLINE, }; |
| + |
| const SchedulerStateMachine::CommitState all_commit_states[] = { |
| - SchedulerStateMachine::COMMIT_STATE_IDLE, |
| - SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, |
| - SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, |
| - SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW |
| -}; |
| + SchedulerStateMachine::COMMIT_STATE_IDLE, |
| + SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, |
| + SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, |
| + SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_ACTIVATION, |
| + SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, }; |
| // Exposes the protected state fields of the SchedulerStateMachine for testing |
| class StateMachine : public SchedulerStateMachine { |
| @@ -36,6 +56,9 @@ class StateMachine : public SchedulerStateMachine { |
| void SetCommitState(CommitState cs) { commit_state_ = cs; } |
| CommitState CommitState() const { return commit_state_; } |
| + void SetBeginFrameState(BeginFrameState bfs) { begin_frame_state_ = bfs; } |
| + BeginFrameState begin_frame_state() const { return begin_frame_state_; } |
| + |
| OutputSurfaceState output_surface_state() { return output_surface_state_; } |
| bool NeedsCommit() const { return needs_commit_; } |