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

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

Issue 10577037: Add GL_CHROMIUM_get_error_query (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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 side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/service/query_manager_unittest.cc
diff --git a/gpu/command_buffer/service/query_manager_unittest.cc b/gpu/command_buffer/service/query_manager_unittest.cc
index bd2b84f586287100aab0dd1a28ac67f9514280c7..941b2e834eb2c79064f7f44a401b0e2d17b8aa48 100644
--- a/gpu/command_buffer/service/query_manager_unittest.cc
+++ b/gpu/command_buffer/service/query_manager_unittest.cc
@@ -6,28 +6,20 @@
#include "gpu/command_buffer/common/gl_mock.h"
#include "gpu/command_buffer/common/gles2_cmd_format.h"
#include "gpu/command_buffer/service/cmd_buffer_engine.h"
-#include "gpu/command_buffer/service/common_decoder.h"
+#include "gpu/command_buffer/service/gles2_cmd_decoder.h"
+#include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h"
#include "gpu/command_buffer/service/feature_info.h"
#include "gpu/command_buffer/service/test_helper.h"
#include "testing/gtest/include/gtest/gtest.h"
using ::testing::_;
using ::testing::InSequence;
+using ::testing::Return;
using ::testing::SetArgumentPointee;
namespace gpu {
namespace gles2 {
-class MockDecoder : public CommonDecoder {
- public:
- virtual ~MockDecoder() { }
- MOCK_METHOD3(DoCommand, error::Error(
- unsigned int command,
- unsigned int arg_count,
- const void* cmd_data));
- MOCK_CONST_METHOD1(GetCommandName, const char* (unsigned int command_id));
-};
-
class QueryManagerTest : public testing::Test {
public:
static const int32 kSharedMemoryId = 401;
@@ -48,7 +40,7 @@ class QueryManagerTest : public testing::Test {
gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>());
::gfx::GLInterface::SetGLInterface(gl_.get());
engine_.reset(new MockCommandBufferEngine());
- decoder_.reset(new MockDecoder());
+ decoder_.reset(new MockGLES2Decoder());
decoder_->set_engine(engine_.get());
TestHelper::SetupFeatureInfoInitExpectations(
gl_.get(),
@@ -90,7 +82,7 @@ class QueryManagerTest : public testing::Test {
// Use StrictMock to make 100% sure we know how GL will be called.
scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_;
- scoped_ptr<MockDecoder> decoder_;
+ scoped_ptr<MockGLES2Decoder> decoder_;
scoped_ptr<QueryManager> manager_;
private:
@@ -469,6 +461,8 @@ TEST_F(QueryManagerTest, ExitWithPendingQuery) {
QueueQuery(query.get(), kService1Id, kSubmitCount);
}
+// Test that when based on ARB_occlusion_query2 we use GL_ANY_SAMPLES_PASSED_ARB
+// for GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT
TEST_F(QueryManagerTest, ARBOcclusionQuery2) {
const GLuint kClient1Id = 1;
const GLuint kService1Id = 11;
@@ -501,6 +495,8 @@ TEST_F(QueryManagerTest, ARBOcclusionQuery2) {
manager->Destroy(false);
}
+// Test that when based on ARB_occlusion_query we use GL_SAMPLES_PASSED_ARB
+// for GL_ANY_SAMPLES_PASSED_EXT
TEST_F(QueryManagerTest, ARBOcclusionQuery) {
const GLuint kClient1Id = 1;
const GLuint kService1Id = 11;
@@ -533,6 +529,41 @@ TEST_F(QueryManagerTest, ARBOcclusionQuery) {
manager->Destroy(false);
}
+TEST_F(QueryManagerTest, GetErrorQuery) {
+ const GLuint kClient1Id = 1;
+ const GLenum kTarget = GL_GET_ERROR_QUERY_CHROMIUM;
+ const uint32 kSubmitCount = 123;
+
+ TestHelper::SetupFeatureInfoInitExpectations(gl_.get(), "");
+ FeatureInfo::Ref feature_info(new FeatureInfo());
+ feature_info->Initialize("*");
+ scoped_ptr<QueryManager> manager(
+ new QueryManager(decoder_.get(), feature_info.get()));
+
+ QueryManager::Query* query = manager->CreateQuery(
+ kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset);
+ ASSERT_TRUE(query != NULL);
+
+ // Setup shared memory like client would.
+ QuerySync* sync = decoder_->GetSharedMemoryAs<QuerySync*>(
+ kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync));
+ ASSERT_TRUE(sync != NULL);
+ sync->Reset();
+
+ EXPECT_TRUE(manager->BeginQuery(query));
+
+ EXPECT_CALL(*decoder_.get(), GetGLError())
+ .WillOnce(Return(GL_INVALID_ENUM))
+ .RetiresOnSaturation();
+
+ EXPECT_TRUE(manager->EndQuery(query, kSubmitCount));
+ EXPECT_FALSE(query->pending());
+
+ EXPECT_EQ(static_cast<GLuint>(GL_INVALID_ENUM), sync->result);
+
+ manager->Destroy(false);
+}
+
} // namespace gles2
} // namespace gpu
« no previous file with comments | « gpu/command_buffer/service/query_manager.cc ('k') | gpu/command_buffer/tests/gl_get_error_query_unittests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698