Supervised user import: Listen for profile creation/deletion
[chromium-blink-merge.git] / gpu / command_buffer / service / gles2_cmd_decoder_unittest_3.cc
blob8b60ac4b74c78b2088515699706688ad0c3d06f0
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
7 #include "gpu/command_buffer/common/gles2_cmd_format.h"
8 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
9 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h"
10 #include "gpu/command_buffer/service/cmd_buffer_engine.h"
11 #include "gpu/command_buffer/service/context_group.h"
12 #include "gpu/command_buffer/service/program_manager.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14 #include "ui/gl/gl_mock.h"
16 using ::gfx::MockGLInterface;
17 using ::testing::_;
18 using ::testing::DoAll;
19 using ::testing::InSequence;
20 using ::testing::MatcherCast;
21 using ::testing::Pointee;
22 using ::testing::Return;
23 using ::testing::SetArrayArgument;
24 using ::testing::SetArgumentPointee;
25 using ::testing::StrEq;
27 namespace gpu {
28 namespace gles2 {
30 using namespace cmds;
32 class GLES2DecoderTest3 : public GLES2DecoderTestBase {
33 public:
34 GLES2DecoderTest3() { }
37 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderTest3, ::testing::Bool());
39 template <>
40 void GLES2DecoderTestBase::SpecializedSetup<cmds::UseProgram, 0>(
41 bool /* valid */) {
42 // Needs the same setup as LinkProgram.
43 SpecializedSetup<cmds::LinkProgram, 0>(false);
45 EXPECT_CALL(*gl_, LinkProgram(kServiceProgramId))
46 .Times(1)
47 .RetiresOnSaturation();
49 cmds::LinkProgram link_cmd;
50 link_cmd.Init(client_program_id_);
51 EXPECT_EQ(error::kNoError, ExecuteCmd(link_cmd));
54 template <>
55 void GLES2DecoderTestBase::SpecializedSetup<cmds::ValidateProgram, 0>(
56 bool /* valid */) {
57 // Needs the same setup as LinkProgram.
58 SpecializedSetup<cmds::LinkProgram, 0>(false);
60 EXPECT_CALL(*gl_, LinkProgram(kServiceProgramId))
61 .Times(1)
62 .RetiresOnSaturation();
64 cmds::LinkProgram link_cmd;
65 link_cmd.Init(client_program_id_);
66 EXPECT_EQ(error::kNoError, ExecuteCmd(link_cmd));
68 EXPECT_CALL(*gl_,
69 GetProgramiv(kServiceProgramId, GL_INFO_LOG_LENGTH, _))
70 .WillOnce(SetArgumentPointee<2>(0))
71 .RetiresOnSaturation();
74 TEST_P(GLES2DecoderTest3, TraceBeginCHROMIUM) {
75 const uint32 kCategoryBucketId = 123;
76 const uint32 kNameBucketId = 234;
78 const char kCategory[] = "test_category";
79 const char kName[] = "test_command";
80 SetBucketAsCString(kCategoryBucketId, kCategory);
81 SetBucketAsCString(kNameBucketId, kName);
83 TraceBeginCHROMIUM begin_cmd;
84 begin_cmd.Init(kCategoryBucketId, kNameBucketId);
85 EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd));
88 TEST_P(GLES2DecoderTest3, TraceEndCHROMIUM) {
89 // Test end fails if no begin.
90 TraceEndCHROMIUM end_cmd;
91 end_cmd.Init();
92 EXPECT_EQ(error::kNoError, ExecuteCmd(end_cmd));
93 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
95 const uint32 kCategoryBucketId = 123;
96 const uint32 kNameBucketId = 234;
98 const char kCategory[] = "test_category";
99 const char kName[] = "test_command";
100 SetBucketAsCString(kCategoryBucketId, kCategory);
101 SetBucketAsCString(kNameBucketId, kName);
103 TraceBeginCHROMIUM begin_cmd;
104 begin_cmd.Init(kCategoryBucketId, kNameBucketId);
105 EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd));
107 end_cmd.Init();
108 EXPECT_EQ(error::kNoError, ExecuteCmd(end_cmd));
109 EXPECT_EQ(GL_NO_ERROR, GetGLError());
112 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h"
114 } // namespace gles2
115 } // namespace gpu