Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(349)

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc

Issue 1095893002: gpu: Fix some context lost marking glitches+leaks and add UMA stats (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: kbr's comment Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "gpu/command_buffer/common/gles2_cmd_format.h" 9 #include "gpu/command_buffer/common/gles2_cmd_format.h"
10 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 10 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
(...skipping 1107 matching lines...) Expand 10 before | Expand all | Expand 10 after
1118 storage_cmd.Init(kTarget, kLevel, kSizedInternalFormat, kWidth, kHeight); 1118 storage_cmd.Init(kTarget, kLevel, kSizedInternalFormat, kWidth, kHeight);
1119 EXPECT_EQ(error::kNoError, ExecuteCmd(storage_cmd)); 1119 EXPECT_EQ(error::kNoError, ExecuteCmd(storage_cmd));
1120 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1120 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1121 1121
1122 // This should not invoke CopyTexImage2D. 1122 // This should not invoke CopyTexImage2D.
1123 copy_cmd.Init(kTarget, kLevel, kInternalFormat, 0, 0, kWidth, kHeight); 1123 copy_cmd.Init(kTarget, kLevel, kInternalFormat, 0, 0, kWidth, kHeight);
1124 EXPECT_EQ(error::kNoError, ExecuteCmd(copy_cmd)); 1124 EXPECT_EQ(error::kNoError, ExecuteCmd(copy_cmd));
1125 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); 1125 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
1126 } 1126 }
1127 1127
1128 TEST_P(GLES2DecoderTest, LoseContextCHROMIUMValidArgs) { 1128 TEST_P(GLES2DecoderTest, LoseContextCHROMIUMGuilty) {
1129 EXPECT_CALL(*mock_decoder_, LoseContext(GL_GUILTY_CONTEXT_RESET_ARB)) 1129 EXPECT_CALL(*mock_decoder_, MarkContextLost(error::kInnocent))
1130 .Times(1); 1130 .Times(1);
1131 cmds::LoseContextCHROMIUM cmd; 1131 cmds::LoseContextCHROMIUM cmd;
1132 cmd.Init(GL_GUILTY_CONTEXT_RESET_ARB, GL_GUILTY_CONTEXT_RESET_ARB); 1132 cmd.Init(GL_GUILTY_CONTEXT_RESET_ARB, GL_INNOCENT_CONTEXT_RESET_ARB);
1133 EXPECT_EQ(error::kLostContext, ExecuteCmd(cmd)); 1133 EXPECT_EQ(error::kLostContext, ExecuteCmd(cmd));
1134 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1134 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1135 EXPECT_TRUE(decoder_->WasContextLost());
1136 EXPECT_TRUE(decoder_->WasContextLostByRobustnessExtension());
1137 }
1138
1139 TEST_P(GLES2DecoderTest, LoseContextCHROMIUMUnkown) {
1140 EXPECT_CALL(*mock_decoder_, MarkContextLost(error::kUnknown))
1141 .Times(1);
1142 cmds::LoseContextCHROMIUM cmd;
1143 cmd.Init(GL_UNKNOWN_CONTEXT_RESET_ARB, GL_UNKNOWN_CONTEXT_RESET_ARB);
1144 EXPECT_EQ(error::kLostContext, ExecuteCmd(cmd));
1145 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1146 EXPECT_TRUE(decoder_->WasContextLost());
1147 EXPECT_TRUE(decoder_->WasContextLostByRobustnessExtension());
1135 } 1148 }
1136 1149
1137 TEST_P(GLES2DecoderTest, LoseContextCHROMIUMInvalidArgs0_0) { 1150 TEST_P(GLES2DecoderTest, LoseContextCHROMIUMInvalidArgs0_0) {
1138 EXPECT_CALL(*mock_decoder_, LoseContext(_)) 1151 EXPECT_CALL(*mock_decoder_, MarkContextLost(_))
1139 .Times(0); 1152 .Times(0);
1140 cmds::LoseContextCHROMIUM cmd; 1153 cmds::LoseContextCHROMIUM cmd;
1141 cmd.Init(GL_NONE, GL_GUILTY_CONTEXT_RESET_ARB); 1154 cmd.Init(GL_NONE, GL_GUILTY_CONTEXT_RESET_ARB);
1142 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1155 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1143 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1156 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1144 } 1157 }
1145 1158
1146 TEST_P(GLES2DecoderTest, LoseContextCHROMIUMInvalidArgs1_0) { 1159 TEST_P(GLES2DecoderTest, LoseContextCHROMIUMInvalidArgs1_0) {
1147 EXPECT_CALL(*mock_decoder_, LoseContext(_)) 1160 EXPECT_CALL(*mock_decoder_, MarkContextLost(_))
1148 .Times(0); 1161 .Times(0);
1149 cmds::LoseContextCHROMIUM cmd; 1162 cmds::LoseContextCHROMIUM cmd;
1150 cmd.Init(GL_GUILTY_CONTEXT_RESET_ARB, GL_NONE); 1163 cmd.Init(GL_GUILTY_CONTEXT_RESET_ARB, GL_NONE);
1151 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1164 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1152 EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); 1165 EXPECT_EQ(GL_INVALID_ENUM, GetGLError());
1153 } 1166 }
1154 1167
1155 class GLES2DecoderDoCommandsTest : public GLES2DecoderTest { 1168 class GLES2DecoderDoCommandsTest : public GLES2DecoderTest {
1156 public: 1169 public:
1157 GLES2DecoderDoCommandsTest() { 1170 GLES2DecoderDoCommandsTest() {
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1257 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderManualInitTest, ::testing::Bool()); 1270 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderManualInitTest, ::testing::Bool());
1258 1271
1259 INSTANTIATE_TEST_CASE_P(Service, 1272 INSTANTIATE_TEST_CASE_P(Service,
1260 GLES2DecoderRGBBackbufferTest, 1273 GLES2DecoderRGBBackbufferTest,
1261 ::testing::Bool()); 1274 ::testing::Bool());
1262 1275
1263 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderDoCommandsTest, ::testing::Bool()); 1276 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderDoCommandsTest, ::testing::Bool());
1264 1277
1265 } // namespace gles2 1278 } // namespace gles2
1266 } // namespace gpu 1279 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder_mock.h ('k') | gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698