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.
4
5#include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6
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"
15
16using ::gfx::MockGLInterface;
17using ::testing::_;
18using ::testing::DoAll;
19using ::testing::InSequence;
20using ::testing::MatcherCast;
21using ::testing::Pointee;
22using ::testing::Return;
23using ::testing::SetArrayArgument;
24using ::testing::SetArgumentPointee;
25using ::testing::StrEq;
26
27namespace gpu {
28namespace gles2 {
29
30using namespace cmds;
31
32class GLES2DecoderTest3 : public GLES2DecoderTestBase {
33 public:
34  GLES2DecoderTest3() { }
35};
36
37INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderTest3, ::testing::Bool());
38
39TEST_P(GLES2DecoderTest3, TraceBeginCHROMIUM) {
40  const uint32 kBucketId = 123;
41  const char kName[] = "test_command";
42  SetBucketAsCString(kBucketId, kName);
43
44  TraceBeginCHROMIUM begin_cmd;
45  begin_cmd.Init(kBucketId);
46  EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd));
47}
48
49TEST_P(GLES2DecoderTest3, TraceEndCHROMIUM) {
50  // Test end fails if no begin.
51  TraceEndCHROMIUM end_cmd;
52  end_cmd.Init();
53  EXPECT_EQ(error::kNoError, ExecuteCmd(end_cmd));
54  EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
55
56  const uint32 kBucketId = 123;
57  const char kName[] = "test_command";
58  SetBucketAsCString(kBucketId, kName);
59
60  TraceBeginCHROMIUM begin_cmd;
61  begin_cmd.Init(kBucketId);
62  EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd));
63
64  end_cmd.Init();
65  EXPECT_EQ(error::kNoError, ExecuteCmd(end_cmd));
66  EXPECT_EQ(GL_NO_ERROR, GetGLError());
67}
68
69#include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h"
70
71}  // namespace gles2
72}  // namespace gpu
73