Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc |
index 00154b4945edbbca5840b2c4d65da48492a29b06..49ebfc3f27a17f1fbf2e9a41b50ae6c94d947a30 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc |
@@ -66,6 +66,10 @@ class GLES2DecoderRestoreStateTest : public GLES2DecoderManualInitTest { |
uint32 active_unit); |
}; |
+INSTANTIATE_TEST_CASE_P(Service, |
+ GLES2DecoderRestoreStateTest, |
+ ::testing::Bool()); |
+ |
void GLES2DecoderRestoreStateTest::AddExpectationsForActiveTexture( |
GLenum unit) { |
EXPECT_CALL(*gl_, ActiveTexture(unit)).Times(1).RetiresOnSaturation(); |
@@ -94,7 +98,7 @@ void GLES2DecoderRestoreStateTest::InitializeContextState( |
state->active_texture_unit = active_unit; |
} |
-TEST_F(GLES2DecoderRestoreStateTest, NullPreviousStateBGR) { |
+TEST_P(GLES2DecoderRestoreStateTest, NullPreviousStateBGR) { |
InitState init; |
init.gl_version = "3.0"; |
init.bind_generates_resource = true; |
@@ -123,7 +127,7 @@ TEST_F(GLES2DecoderRestoreStateTest, NullPreviousStateBGR) { |
GetDecoder()->RestoreAllTextureUnitBindings(NULL); |
} |
-TEST_F(GLES2DecoderRestoreStateTest, NullPreviousState) { |
+TEST_P(GLES2DecoderRestoreStateTest, NullPreviousState) { |
InitState init; |
init.gl_version = "3.0"; |
InitDecoder(init); |
@@ -148,7 +152,7 @@ TEST_F(GLES2DecoderRestoreStateTest, NullPreviousState) { |
GetDecoder()->RestoreAllTextureUnitBindings(NULL); |
} |
-TEST_F(GLES2DecoderRestoreStateTest, WithPreviousStateBGR) { |
+TEST_P(GLES2DecoderRestoreStateTest, WithPreviousStateBGR) { |
InitState init; |
init.gl_version = "3.0"; |
init.bind_generates_resource = true; |
@@ -173,7 +177,7 @@ TEST_F(GLES2DecoderRestoreStateTest, WithPreviousStateBGR) { |
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state); |
} |
-TEST_F(GLES2DecoderRestoreStateTest, WithPreviousState) { |
+TEST_P(GLES2DecoderRestoreStateTest, WithPreviousState) { |
InitState init; |
init.gl_version = "3.0"; |
InitDecoder(init); |
@@ -197,7 +201,7 @@ TEST_F(GLES2DecoderRestoreStateTest, WithPreviousState) { |
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state); |
} |
-TEST_F(GLES2DecoderRestoreStateTest, ActiveUnit1) { |
+TEST_P(GLES2DecoderRestoreStateTest, ActiveUnit1) { |
InitState init; |
init.gl_version = "3.0"; |
InitDecoder(init); |
@@ -228,7 +232,7 @@ TEST_F(GLES2DecoderRestoreStateTest, ActiveUnit1) { |
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state); |
} |
-TEST_F(GLES2DecoderRestoreStateTest, NonDefaultUnit0BGR) { |
+TEST_P(GLES2DecoderRestoreStateTest, NonDefaultUnit0BGR) { |
InitState init; |
init.gl_version = "3.0"; |
init.bind_generates_resource = true; |
@@ -267,7 +271,7 @@ TEST_F(GLES2DecoderRestoreStateTest, NonDefaultUnit0BGR) { |
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state); |
} |
-TEST_F(GLES2DecoderRestoreStateTest, NonDefaultUnit1BGR) { |
+TEST_P(GLES2DecoderRestoreStateTest, NonDefaultUnit1BGR) { |
InitState init; |
init.gl_version = "3.0"; |
init.bind_generates_resource = true; |
@@ -300,7 +304,7 @@ TEST_F(GLES2DecoderRestoreStateTest, NonDefaultUnit1BGR) { |
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state); |
} |
-TEST_F(GLES2DecoderRestoreStateTest, DefaultUnit0) { |
+TEST_P(GLES2DecoderRestoreStateTest, DefaultUnit0) { |
InitState init; |
init.gl_version = "3.0"; |
InitDecoder(init); |
@@ -337,7 +341,7 @@ TEST_F(GLES2DecoderRestoreStateTest, DefaultUnit0) { |
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state); |
} |
-TEST_F(GLES2DecoderRestoreStateTest, DefaultUnit1) { |
+TEST_P(GLES2DecoderRestoreStateTest, DefaultUnit1) { |
InitState init; |
init.gl_version = "3.0"; |
InitDecoder(init); |
@@ -368,6 +372,44 @@ TEST_F(GLES2DecoderRestoreStateTest, DefaultUnit1) { |
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state); |
} |
+TEST_P(GLES2DecoderManualInitTest, ContextStateCapabilityCaching) { |
+ struct TestInfo { |
+ GLenum gl_enum; |
+ bool default_state; |
+ bool expect_set; |
+ }; |
+ |
+ // TODO(vmiura): Should autogen this to match build_gles2_cmd_buffer.py. |
+ TestInfo test[] = {{GL_BLEND, false, true}, |
+ {GL_CULL_FACE, false, true}, |
+ {GL_DEPTH_TEST, false, false}, |
+ {GL_DITHER, true, true}, |
+ {GL_POLYGON_OFFSET_FILL, false, true}, |
+ {GL_SAMPLE_ALPHA_TO_COVERAGE, false, true}, |
+ {GL_SAMPLE_COVERAGE, false, true}, |
+ {GL_SCISSOR_TEST, false, true}, |
+ {GL_STENCIL_TEST, false, false}, |
+ {0, false, false}}; |
+ |
+ InitState init; |
+ init.gl_version = "2.1"; |
+ InitDecoder(init); |
+ |
+ for (int i = 0; test[i].gl_enum; i++) { |
+ bool enable_state = test[i].default_state; |
+ |
+ // Test setting default state initially is ignored. |
+ EnableDisableTest(test[i].gl_enum, enable_state, test[i].expect_set); |
+ |
+ // Test new and cached state changes. |
+ for (int n = 0; n < 3; n++) { |
+ enable_state = !enable_state; |
+ EnableDisableTest(test[i].gl_enum, enable_state, test[i].expect_set); |
+ EnableDisableTest(test[i].gl_enum, enable_state, test[i].expect_set); |
+ } |
+ } |
+} |
+ |
// TODO(vmiura): Tests for VAO restore. |
// TODO(vmiura): Tests for ContextState::RestoreAttribute(). |