• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2021 The Dawn Authors
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef TESTS_UNITTESTS_NATIVE_MOCKS_DEVICE_MOCK_H_
16 #define TESTS_UNITTESTS_NATIVE_MOCKS_DEVICE_MOCK_H_
17 
18 #include "dawn_native/Device.h"
19 #include "dawn_native/RenderPipeline.h"
20 
21 #include <gmock/gmock.h>
22 
23 namespace dawn_native {
24 
25     class DeviceMock : public DeviceBase {
26       public:
27         // Exposes some protected functions for testing purposes.
28         using DeviceBase::DestroyObjects;
29         using DeviceBase::SetToggle;
30 
31         MOCK_METHOD(ResultOrError<Ref<CommandBufferBase>>,
32                     CreateCommandBuffer,
33                     (CommandEncoder*, const CommandBufferDescriptor*),
34                     (override));
35 
36         MOCK_METHOD(ResultOrError<std::unique_ptr<StagingBufferBase>>,
37                     CreateStagingBuffer,
38                     (size_t),
39                     (override));
40         MOCK_METHOD(MaybeError,
41                     CopyFromStagingToBuffer,
42                     (StagingBufferBase*, uint64_t, BufferBase*, uint64_t, uint64_t),
43                     (override));
44         MOCK_METHOD(
45             MaybeError,
46             CopyFromStagingToTexture,
47             (const StagingBufferBase*, const TextureDataLayout&, TextureCopy*, const Extent3D&),
48             (override));
49 
50         MOCK_METHOD(uint32_t, GetOptimalBytesPerRowAlignment, (), (const, override));
51         MOCK_METHOD(uint64_t, GetOptimalBufferToTextureCopyOffsetAlignment, (), (const, override));
52 
53         MOCK_METHOD(float, GetTimestampPeriodInNS, (), (const, override));
54 
55         MOCK_METHOD(ResultOrError<Ref<BindGroupBase>>,
56                     CreateBindGroupImpl,
57                     (const BindGroupDescriptor*),
58                     (override));
59         MOCK_METHOD(ResultOrError<Ref<BindGroupLayoutBase>>,
60                     CreateBindGroupLayoutImpl,
61                     (const BindGroupLayoutDescriptor*, PipelineCompatibilityToken),
62                     (override));
63         MOCK_METHOD(ResultOrError<Ref<BufferBase>>,
64                     CreateBufferImpl,
65                     (const BufferDescriptor*),
66                     (override));
67         MOCK_METHOD(Ref<ComputePipelineBase>,
68                     CreateUninitializedComputePipelineImpl,
69                     (const ComputePipelineDescriptor*),
70                     (override));
71         MOCK_METHOD(ResultOrError<Ref<PipelineLayoutBase>>,
72                     CreatePipelineLayoutImpl,
73                     (const PipelineLayoutDescriptor*),
74                     (override));
75         MOCK_METHOD(ResultOrError<Ref<QuerySetBase>>,
76                     CreateQuerySetImpl,
77                     (const QuerySetDescriptor*),
78                     (override));
79         MOCK_METHOD(Ref<RenderPipelineBase>,
80                     CreateUninitializedRenderPipelineImpl,
81                     (const RenderPipelineDescriptor*),
82                     (override));
83         MOCK_METHOD(ResultOrError<Ref<SamplerBase>>,
84                     CreateSamplerImpl,
85                     (const SamplerDescriptor*),
86                     (override));
87         MOCK_METHOD(ResultOrError<Ref<ShaderModuleBase>>,
88                     CreateShaderModuleImpl,
89                     (const ShaderModuleDescriptor*, ShaderModuleParseResult*),
90                     (override));
91         MOCK_METHOD(ResultOrError<Ref<SwapChainBase>>,
92                     CreateSwapChainImpl,
93                     (const SwapChainDescriptor*),
94                     (override));
95         MOCK_METHOD(ResultOrError<Ref<NewSwapChainBase>>,
96                     CreateSwapChainImpl,
97                     (Surface*, NewSwapChainBase*, const SwapChainDescriptor*),
98                     (override));
99         MOCK_METHOD(ResultOrError<Ref<TextureBase>>,
100                     CreateTextureImpl,
101                     (const TextureDescriptor*),
102                     (override));
103         MOCK_METHOD(ResultOrError<Ref<TextureViewBase>>,
104                     CreateTextureViewImpl,
105                     (TextureBase*, const TextureViewDescriptor*),
106                     (override));
107 
108         MOCK_METHOD(MaybeError, TickImpl, (), (override));
109 
110         MOCK_METHOD(ResultOrError<ExecutionSerial>, CheckAndUpdateCompletedSerials, (), (override));
111         MOCK_METHOD(void, DestroyImpl, (), (override));
112         MOCK_METHOD(MaybeError, WaitForIdleForDestruction, (), (override));
113     };
114 
115 }  // namespace dawn_native
116 
117 #endif  // TESTS_UNITTESTS_NATIVE_MOCKS_DEVICE_MOCK_H_
118