webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
angle_unittests_utils.h
Go to the documentation of this file.
1 //
2 // Copyright 2015 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 // angle_unittests_utils.h:
7 // Helpers for mocking and unit testing.
8 
9 #ifndef TESTS_ANGLE_UNITTESTS_UTILS_H_
10 #define TESTS_ANGLE_UNITTESTS_UTILS_H_
11 
12 #include "libANGLE/Surface.h"
16 
17 namespace rx
18 {
19 
20 // Useful when mocking a part of the GLImplFactory class
21 class NullFactory : public GLImplFactory
22 {
23  public:
25 
26  // Shader creation
27  CompilerImpl *createCompiler() override { return nullptr; }
28  ShaderImpl *createShader(const gl::ShaderState &data) override { return nullptr; }
29  ProgramImpl *createProgram(const gl::ProgramState &data) override { return nullptr; }
30 
31  // Framebuffer creation
33  {
34  return nullptr;
35  }
36 
37  // Texture creation
38  TextureImpl *createTexture(const gl::TextureState &data) override { return nullptr; }
39 
40  // Renderbuffer creation
41  RenderbufferImpl *createRenderbuffer() override { return nullptr; }
42 
43  // Buffer creation
44  BufferImpl *createBuffer() override { return nullptr; }
45 
46  // Vertex Array creation
48  {
49  return nullptr;
50  }
51 
52  // Query and Fence creation
53  QueryImpl *createQuery(GLenum type) override { return nullptr; }
54  FenceNVImpl *createFenceNV() override { return nullptr; }
55  FenceSyncImpl *createFenceSync() override { return nullptr; }
56 
57  // Transform Feedback creation
59  {
60  return nullptr;
61  }
62 
63  // Sampler object creation
64  SamplerImpl *createSampler() override { return nullptr; }
65 
66  std::vector<PathImpl *> createPaths(GLsizei range) override
67  {
68  return std::vector<PathImpl *>();
69  }
70 };
71 
72 // A class with all the factory methods mocked.
74 {
75  public:
76  MOCK_METHOD1(createContext, ContextImpl *(const gl::ContextState &));
77  MOCK_METHOD0(createCompiler, CompilerImpl *());
78  MOCK_METHOD1(createShader, ShaderImpl *(const gl::ShaderState &));
79  MOCK_METHOD1(createProgram, ProgramImpl *(const gl::ProgramState &));
80  MOCK_METHOD1(createFramebuffer, FramebufferImpl *(const gl::FramebufferState &));
81  MOCK_METHOD1(createTexture, TextureImpl *(const gl::TextureState &));
82  MOCK_METHOD0(createRenderbuffer, RenderbufferImpl *());
83  MOCK_METHOD0(createBuffer, BufferImpl *());
84  MOCK_METHOD1(createVertexArray, VertexArrayImpl *(const gl::VertexArrayState &));
85  MOCK_METHOD1(createQuery, QueryImpl *(GLenum type));
86  MOCK_METHOD0(createFenceNV, FenceNVImpl *());
87  MOCK_METHOD0(createFenceSync, FenceSyncImpl *());
88  MOCK_METHOD1(createTransformFeedback,
90  MOCK_METHOD0(createSampler, SamplerImpl *());
91  MOCK_METHOD1(createPaths, std::vector<PathImpl *>(GLsizei));
92 };
93 
95 {
96  public:
97  MOCK_METHOD4(createWindowSurface,
99  const egl::Config *,
100  EGLNativeWindowType,
101  const egl::AttributeMap &));
102  MOCK_METHOD3(createPbufferSurface,
103  SurfaceImpl *(const egl::SurfaceState &,
104  const egl::Config *,
105  const egl::AttributeMap &));
106  MOCK_METHOD4(createPbufferFromClientBuffer,
107  SurfaceImpl *(const egl::SurfaceState &,
108  const egl::Config *,
110  const egl::AttributeMap &));
111  MOCK_METHOD4(createPixmapSurface,
112  SurfaceImpl *(const egl::SurfaceState &,
113  const egl::Config *,
115  const egl::AttributeMap &));
116  MOCK_METHOD3(createImage, ImageImpl *(EGLenum, egl::ImageSibling *, const egl::AttributeMap &));
117  MOCK_METHOD1(createContext, ContextImpl *(const gl::ContextState &));
118  MOCK_METHOD2(createStreamProducerD3DTextureNV12,
120 };
121 
122 } // namespace rx
123 
124 #endif // TESTS_ANGLE_UNITTESTS_UTILS_H_
Definition: Texture.h:79
Definition: Image.h:29
Definition: TextureImpl.h:42
Definition: AttributeMap.h:19
Definition: angle_unittests_utils.h:94
std::vector< PathImpl * > createPaths(GLsizei range) override
Definition: angle_unittests_utils.h:66
unsigned int EGLenum
Definition: egl.h:181
unsigned int GLenum
Definition: gl2.h:69
Definition: Shader.h:40
CompilerImpl * createCompiler() override
Definition: angle_unittests_utils.h:27
Definition: StreamProducerImpl.h:18
Definition: Surface.h:40
TransformFeedbackImpl * createTransformFeedback(const gl::TransformFeedbackState &state) override
Definition: angle_unittests_utils.h:58
Definition: ImageImpl.h:22
Definition: BufferImpl.h:21
Definition: GLImplFactory.h:45
Definition: FramebufferImpl.h:28
Definition: mathutil.h:804
SamplerImpl * createSampler() override
Definition: angle_unittests_utils.h:64
Definition: ContextImpl.h:26
Definition: CompilerImpl.h:20
ProgramImpl * createProgram(const gl::ProgramState &data) override
Definition: angle_unittests_utils.h:29
EGLNativePixmapType NativePixmapType
Definition: eglplatform.h:136
FramebufferImpl * createFramebuffer(const gl::FramebufferState &data) override
Definition: angle_unittests_utils.h:32
Definition: RenderbufferImpl.h:25
Definition: ProgramImpl.h:36
Definition: angle_unittests_utils.h:73
Definition: EGLImplFactory.h:35
FenceSyncImpl * createFenceSync() override
Definition: angle_unittests_utils.h:55
ShaderImpl * createShader(const gl::ShaderState &data) override
Definition: angle_unittests_utils.h:28
EGLenum type
Definition: eglext.h:63
EGLStreamKHR EGLint EGLint EGLint const void * data
Definition: eglext.h:984
Definition: FenceNVImpl.h:21
ConsumerType
Definition: Stream.h:43
Definition: TransformFeedbackImpl.h:18
Definition: Config.h:27
Definition: SamplerImpl.h:17
Definition: QueryImpl.h:21
Definition: angle_unittests_utils.h:21
Definition: ContextState.h:41
RenderbufferImpl * createRenderbuffer() override
Definition: angle_unittests_utils.h:41
Definition: VertexArray.h:34
Definition: ShaderImpl.h:18
Definition: Framebuffer.h:52
VertexArrayImpl * createVertexArray(const gl::VertexArrayState &data) override
Definition: angle_unittests_utils.h:47
Definition: Program.h:158
QueryImpl * createQuery(GLenum type) override
Definition: angle_unittests_utils.h:53
Definition: VertexArrayImpl.h:19
int GLsizei
Definition: gl2.h:78
Definition: SurfaceImpl.h:36
void * EGLClientBuffer
Definition: egl.h:182
Definition: FenceSyncImpl.h:21
BufferImpl * createBuffer() override
Definition: angle_unittests_utils.h:44
TextureImpl * createTexture(const gl::TextureState &data) override
Definition: angle_unittests_utils.h:38
NullFactory()
Definition: angle_unittests_utils.h:24
Definition: TransformFeedback.h:29
string state
Definition: buildtests.py:34
FenceNVImpl * createFenceNV() override
Definition: angle_unittests_utils.h:54
GLenum GLint * range
Definition: gl2.h:450