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

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

Issue 2880013: Free the resources used by a context group. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/renderbuffer_manager.h" 5 #include "gpu/command_buffer/service/renderbuffer_manager.h"
6 #include "app/gfx/gl/gl_mock.h"
6 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
7 8
8 namespace gpu { 9 namespace gpu {
9 namespace gles2 { 10 namespace gles2 {
10 11
11 class RenderbufferManagerTest : public testing::Test { 12 class RenderbufferManagerTest : public testing::Test {
12 public: 13 public:
13 RenderbufferManagerTest() { 14 RenderbufferManagerTest() {
14 } 15 }
16 ~RenderbufferManagerTest() {
17 manager_.Destroy(false);
18 }
15 19
16 protected: 20 protected:
17 virtual void SetUp() { 21 virtual void SetUp() {
22 gl_.reset(new ::testing::StrictMock<gfx::MockGLInterface>());
23 ::gfx::GLInterface::SetGLInterface(gl_.get());
18 } 24 }
19 25
20 virtual void TearDown() { 26 virtual void TearDown() {
27 ::gfx::GLInterface::SetGLInterface(NULL);
28 gl_.reset();
21 } 29 }
22 30
31 // Use StrictMock to make 100% sure we know how GL will be called.
32 scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_;
23 RenderbufferManager manager_; 33 RenderbufferManager manager_;
24 }; 34 };
25 35
26 TEST_F(RenderbufferManagerTest, Basic) { 36 TEST_F(RenderbufferManagerTest, Basic) {
27 const GLuint kClient1Id = 1; 37 const GLuint kClient1Id = 1;
28 const GLuint kService1Id = 11; 38 const GLuint kService1Id = 11;
29 const GLuint kClient2Id = 2; 39 const GLuint kClient2Id = 2;
30 // Check we can create renderbuffer. 40 // Check we can create renderbuffer.
31 manager_.CreateRenderbufferInfo(kClient1Id, kService1Id); 41 manager_.CreateRenderbufferInfo(kClient1Id, kService1Id);
32 // Check renderbuffer got created. 42 // Check renderbuffer got created.
(...skipping 10 matching lines...) Expand all
43 EXPECT_EQ(kService1Id, info1->service_id()); 53 EXPECT_EQ(kService1Id, info1->service_id());
44 // Check we get nothing for a non-existent renderbuffer. 54 // Check we get nothing for a non-existent renderbuffer.
45 EXPECT_TRUE(manager_.GetRenderbufferInfo(kClient2Id) == NULL); 55 EXPECT_TRUE(manager_.GetRenderbufferInfo(kClient2Id) == NULL);
46 // Check trying to a remove non-existent renderbuffers does not crash. 56 // Check trying to a remove non-existent renderbuffers does not crash.
47 manager_.RemoveRenderbufferInfo(kClient2Id); 57 manager_.RemoveRenderbufferInfo(kClient2Id);
48 // Check we can't get the renderbuffer after we remove it. 58 // Check we can't get the renderbuffer after we remove it.
49 manager_.RemoveRenderbufferInfo(kClient1Id); 59 manager_.RemoveRenderbufferInfo(kClient1Id);
50 EXPECT_TRUE(manager_.GetRenderbufferInfo(kClient1Id) == NULL); 60 EXPECT_TRUE(manager_.GetRenderbufferInfo(kClient1Id) == NULL);
51 } 61 }
52 62
63 TEST_F(RenderbufferManagerTest, Destroy) {
64 const GLuint kClient1Id = 1;
65 const GLuint kService1Id = 11;
66 // Check we can create renderbuffer.
67 manager_.CreateRenderbufferInfo(kClient1Id, kService1Id);
68 // Check renderbuffer got created.
69 RenderbufferManager::RenderbufferInfo* info1 =
70 manager_.GetRenderbufferInfo(kClient1Id);
71 ASSERT_TRUE(info1 != NULL);
72 EXPECT_CALL(*gl_, DeleteRenderbuffersEXT(1, ::testing::Pointee(kService1Id)))
73 .Times(1)
74 .RetiresOnSaturation();
75 manager_.Destroy(true);
76 info1 = manager_.GetRenderbufferInfo(kClient1Id);
77 ASSERT_TRUE(info1 == NULL);
78 }
79
53 } // namespace gles2 80 } // namespace gles2
54 } // namespace gpu 81 } // namespace gpu
55 82
56 83
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/renderbuffer_manager.cc ('k') | gpu/command_buffer/service/shader_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698