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

Unified Diff: gpu/command_buffer/service/framebuffer_manager_unittest.cc

Issue 1278333003: Fix crash caused by concurrent access to framebuffer_combo_complete_map_. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments; return unittesting of cache behaviour. Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/service/framebuffer_manager_unittest.cc
diff --git a/gpu/command_buffer/service/framebuffer_manager_unittest.cc b/gpu/command_buffer/service/framebuffer_manager_unittest.cc
index c7133acd9c3c7e1e0003f52c82b0b143f591c0bb..48e088f684e71953395e184c24246ce80ba4f237 100644
--- a/gpu/command_buffer/service/framebuffer_manager_unittest.cc
+++ b/gpu/command_buffer/service/framebuffer_manager_unittest.cc
@@ -34,7 +34,7 @@ const bool kUseDefaultTextures = false;
class FramebufferManagerTest : public GpuServiceTest {
public:
FramebufferManagerTest()
- : manager_(1, 1, ContextGroup::CONTEXT_TYPE_UNDEFINED),
+ : manager_(1, 1, ContextGroup::CONTEXT_TYPE_UNDEFINED, NULL),
feature_info_(new FeatureInfo()) {
texture_manager_.reset(new TextureManager(NULL,
feature_info_.get(),
@@ -111,8 +111,10 @@ class FramebufferInfoTestBase : public GpuServiceTest {
static const GLuint kService1Id = 11;
explicit FramebufferInfoTestBase(ContextGroup::ContextType context_type)
- : manager_(kMaxDrawBuffers, kMaxColorAttachments, context_type),
+ : manager_(kMaxDrawBuffers, kMaxColorAttachments, context_type, NULL),
feature_info_(new FeatureInfo()) {
+ manager_.SetFramebufferComboCompleteCacheForTesting(
+ new FramebufferCompletenessCache);
texture_manager_.reset(new TextureManager(NULL,
feature_info_.get(),
kMaxTextureSize,
@@ -835,11 +837,6 @@ TEST_F(FramebufferInfoTest, GetStatus) {
framebuffer_->GetStatus(texture_manager_.get(), GL_FRAMEBUFFER);
// Check a second call for the same type does not call anything
- if (!framebuffer_->AllowFramebufferComboCompleteMapForTesting()) {
- EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER))
Ken Russell (switch to Gerrit) 2015/08/20 00:04:10 Why are these CheckFramebufferStatusEXT expectatio
no sievers 2015/08/20 00:11:29 Actually if you are setting the expectation than y
Tobias Sargeant 2015/08/20 11:05:13 Acknowledged.
Tobias Sargeant 2015/08/20 11:05:13 Acknowledged.
- .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE))
- .RetiresOnSaturation();
- }
framebuffer_->GetStatus(texture_manager_.get(), GL_FRAMEBUFFER);
// Check changing the attachments calls CheckFramebufferStatus.
@@ -850,11 +847,6 @@ TEST_F(FramebufferInfoTest, GetStatus) {
framebuffer_->GetStatus(texture_manager_.get(), GL_FRAMEBUFFER);
// Check a second call for the same type does not call anything.
- if (!framebuffer_->AllowFramebufferComboCompleteMapForTesting()) {
- EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER))
- .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE))
- .RetiresOnSaturation();
- }
framebuffer_->GetStatus(texture_manager_.get(), GL_FRAMEBUFFER);
// Check a second call with a different target calls CheckFramebufferStatus.
@@ -864,11 +856,6 @@ TEST_F(FramebufferInfoTest, GetStatus) {
framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER);
// Check a second call for the same type does not call anything.
- if (!framebuffer_->AllowFramebufferComboCompleteMapForTesting()) {
- EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_READ_FRAMEBUFFER))
- .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE))
- .RetiresOnSaturation();
- }
framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER);
// Check adding another attachment calls CheckFramebufferStatus.
@@ -879,11 +866,6 @@ TEST_F(FramebufferInfoTest, GetStatus) {
framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER);
// Check a second call for the same type does not call anything.
- if (!framebuffer_->AllowFramebufferComboCompleteMapForTesting()) {
- EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_READ_FRAMEBUFFER))
- .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE))
- .RetiresOnSaturation();
- }
framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER);
// Check changing the format calls CheckFramebuffferStatus.
@@ -906,11 +888,6 @@ TEST_F(FramebufferInfoTest, GetStatus) {
framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER);
// Check putting it back does not call CheckFramebufferStatus.
- if (!framebuffer_->AllowFramebufferComboCompleteMapForTesting()) {
- EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_READ_FRAMEBUFFER))
- .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE))
- .RetiresOnSaturation();
- }
TestHelper::SetTexParameteriWithExpectations(gl_.get(),
error_state_.get(),
texture_manager_.get(),
@@ -922,11 +899,6 @@ TEST_F(FramebufferInfoTest, GetStatus) {
// Check Unbinding does not call CheckFramebufferStatus
framebuffer_->UnbindRenderbuffer(GL_RENDERBUFFER, renderbuffer1);
- if (!framebuffer_->AllowFramebufferComboCompleteMapForTesting()) {
- EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_READ_FRAMEBUFFER))
- .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE))
- .RetiresOnSaturation();
- }
framebuffer_->GetStatus(texture_manager_.get(), GL_READ_FRAMEBUFFER);
}

Powered by Google App Engine
This is Rietveld 408576698