mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-08 21:17:45 +00:00
Make unittests and fuzzers use webgpu.h
BUG=dawn:22 Change-Id: Iff5465ad7a9456f9c6b2ee380af748b3afc129b7 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/12741 Commit-Queue: Kai Ninomiya <kainino@chromium.org> Reviewed-by: Austin Eng <enga@chromium.org> Reviewed-by: Kai Ninomiya <kainino@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
cab352c2f6
commit
45b51f5df7
@@ -482,7 +482,7 @@ class MultiGeneratorFromDawnJSON(Generator):
|
||||
return 'Generates code for various target from Dawn.json.'
|
||||
|
||||
def add_commandline_arguments(self, parser):
|
||||
allowed_targets = ['dawn_headers', 'dawncpp_headers', 'dawncpp', 'dawn_proc', 'mock_dawn', 'dawn_wire', "dawn_native_utils"]
|
||||
allowed_targets = ['dawn_headers', 'dawncpp_headers', 'dawncpp', 'dawn_proc', 'mock_webgpu', 'dawn_wire', "dawn_native_utils"]
|
||||
|
||||
parser.add_argument('--dawn-json', required=True, type=str, help ='The DAWN JSON definition to use.')
|
||||
parser.add_argument('--wire-json', default=None, type=str, help='The DAWN WIRE JSON definition to use.')
|
||||
@@ -542,9 +542,9 @@ class MultiGeneratorFromDawnJSON(Generator):
|
||||
if 'dawncpp' in targets:
|
||||
renders.append(FileRender('webgpu_cpp.cpp', 'src/dawn/webgpu_cpp.cpp', [base_params, api_params, cpp_params]))
|
||||
|
||||
if 'mock_dawn' in targets:
|
||||
renders.append(FileRender('mock_api.h', 'src/dawn/mock_dawn.h', [base_params, api_params, c_params]))
|
||||
renders.append(FileRender('mock_api.cpp', 'src/dawn/mock_dawn.cpp', [base_params, api_params, c_params]))
|
||||
if 'mock_webgpu' in targets:
|
||||
renders.append(FileRender('mock_webgpu.h', 'src/dawn/mock_webgpu.h', [base_params, api_params, c_params]))
|
||||
renders.append(FileRender('mock_webgpu.cpp', 'src/dawn/mock_webgpu.cpp', [base_params, api_params, c_params]))
|
||||
|
||||
if 'dawn_native_utils' in targets:
|
||||
frontend_params = [
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
//* See the License for the specific language governing permissions and
|
||||
//* limitations under the License.
|
||||
|
||||
#include "mock_dawn.h"
|
||||
#include "mock_webgpu.h"
|
||||
|
||||
using namespace testing;
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace {
|
||||
ProcTableAsClass::~ProcTableAsClass() {
|
||||
}
|
||||
|
||||
void ProcTableAsClass::GetProcTableAndDevice(DawnProcTable* table, DawnDevice* device) {
|
||||
void ProcTableAsClass::GetProcTableAndDevice(DawnProcTable* table, WGPUDevice* device) {
|
||||
*device = GetNewDevice();
|
||||
|
||||
{% for type in by_category["object"] %}
|
||||
@@ -50,9 +50,9 @@ void ProcTableAsClass::GetProcTableAndDevice(DawnProcTable* table, DawnDevice* d
|
||||
{% endfor %}
|
||||
}
|
||||
|
||||
void ProcTableAsClass::DeviceSetUncapturedErrorCallback(DawnDevice self,
|
||||
DawnErrorCallback callback,
|
||||
void* userdata) {
|
||||
void ProcTableAsClass::DeviceSetUncapturedErrorCallback(WGPUDevice self,
|
||||
WGPUErrorCallback callback,
|
||||
void* userdata) {
|
||||
auto object = reinterpret_cast<ProcTableAsClass::Object*>(self);
|
||||
object->deviceErrorCallback = callback;
|
||||
object->userdata1 = userdata;
|
||||
@@ -60,13 +60,15 @@ void ProcTableAsClass::DeviceSetUncapturedErrorCallback(DawnDevice self,
|
||||
OnDeviceSetUncapturedErrorCallback(self, callback, userdata);
|
||||
}
|
||||
|
||||
bool ProcTableAsClass::DevicePopErrorScope(DawnDevice self, DawnErrorCallback callback, void* userdata) {
|
||||
bool ProcTableAsClass::DevicePopErrorScope(WGPUDevice self,
|
||||
WGPUErrorCallback callback,
|
||||
void* userdata) {
|
||||
return OnDevicePopErrorScopeCallback(self, callback, userdata);
|
||||
}
|
||||
|
||||
void ProcTableAsClass::DeviceCreateBufferMappedAsync(DawnDevice self,
|
||||
const DawnBufferDescriptor* descriptor,
|
||||
DawnBufferCreateMappedCallback callback,
|
||||
void ProcTableAsClass::DeviceCreateBufferMappedAsync(WGPUDevice self,
|
||||
const WGPUBufferDescriptor* descriptor,
|
||||
WGPUBufferCreateMappedCallback callback,
|
||||
void* userdata) {
|
||||
auto object = reinterpret_cast<ProcTableAsClass::Object*>(self);
|
||||
object->createBufferMappedCallback = callback;
|
||||
@@ -75,8 +77,8 @@ void ProcTableAsClass::DeviceCreateBufferMappedAsync(DawnDevice self,
|
||||
OnDeviceCreateBufferMappedAsyncCallback(self, descriptor, callback, userdata);
|
||||
}
|
||||
|
||||
void ProcTableAsClass::BufferMapReadAsync(DawnBuffer self,
|
||||
DawnBufferMapReadCallback callback,
|
||||
void ProcTableAsClass::BufferMapReadAsync(WGPUBuffer self,
|
||||
WGPUBufferMapReadCallback callback,
|
||||
void* userdata) {
|
||||
auto object = reinterpret_cast<ProcTableAsClass::Object*>(self);
|
||||
object->mapReadCallback = callback;
|
||||
@@ -85,8 +87,8 @@ void ProcTableAsClass::BufferMapReadAsync(DawnBuffer self,
|
||||
OnBufferMapReadAsyncCallback(self, callback, userdata);
|
||||
}
|
||||
|
||||
void ProcTableAsClass::BufferMapWriteAsync(DawnBuffer self,
|
||||
DawnBufferMapWriteCallback callback,
|
||||
void ProcTableAsClass::BufferMapWriteAsync(WGPUBuffer self,
|
||||
WGPUBufferMapWriteCallback callback,
|
||||
void* userdata) {
|
||||
auto object = reinterpret_cast<ProcTableAsClass::Object*>(self);
|
||||
object->mapWriteCallback = callback;
|
||||
@@ -95,9 +97,9 @@ void ProcTableAsClass::BufferMapWriteAsync(DawnBuffer self,
|
||||
OnBufferMapWriteAsyncCallback(self, callback, userdata);
|
||||
}
|
||||
|
||||
void ProcTableAsClass::FenceOnCompletion(DawnFence self,
|
||||
void ProcTableAsClass::FenceOnCompletion(WGPUFence self,
|
||||
uint64_t value,
|
||||
DawnFenceOnCompletionCallback callback,
|
||||
WGPUFenceOnCompletionCallback callback,
|
||||
void* userdata) {
|
||||
auto object = reinterpret_cast<ProcTableAsClass::Object*>(self);
|
||||
object->fenceOnCompletionCallback = callback;
|
||||
@@ -106,26 +108,36 @@ void ProcTableAsClass::FenceOnCompletion(DawnFence self,
|
||||
OnFenceOnCompletionCallback(self, value, callback, userdata);
|
||||
}
|
||||
|
||||
void ProcTableAsClass::CallDeviceErrorCallback(DawnDevice device, DawnErrorType type, const char* message) {
|
||||
void ProcTableAsClass::CallDeviceErrorCallback(WGPUDevice device,
|
||||
WGPUErrorType type,
|
||||
const char* message) {
|
||||
auto object = reinterpret_cast<ProcTableAsClass::Object*>(device);
|
||||
object->deviceErrorCallback(type, message, object->userdata1);
|
||||
}
|
||||
void ProcTableAsClass::CallCreateBufferMappedCallback(DawnDevice device, DawnBufferMapAsyncStatus status, DawnCreateBufferMappedResult result) {
|
||||
void ProcTableAsClass::CallCreateBufferMappedCallback(WGPUDevice device,
|
||||
WGPUBufferMapAsyncStatus status,
|
||||
WGPUCreateBufferMappedResult result) {
|
||||
auto object = reinterpret_cast<ProcTableAsClass::Object*>(device);
|
||||
object->createBufferMappedCallback(status, result, object->userdata1);
|
||||
}
|
||||
void ProcTableAsClass::CallMapReadCallback(DawnBuffer buffer, DawnBufferMapAsyncStatus status, const void* data, uint64_t dataLength) {
|
||||
void ProcTableAsClass::CallMapReadCallback(WGPUBuffer buffer,
|
||||
WGPUBufferMapAsyncStatus status,
|
||||
const void* data,
|
||||
uint64_t dataLength) {
|
||||
auto object = reinterpret_cast<ProcTableAsClass::Object*>(buffer);
|
||||
object->mapReadCallback(status, data, dataLength, object->userdata1);
|
||||
}
|
||||
|
||||
void ProcTableAsClass::CallMapWriteCallback(DawnBuffer buffer, DawnBufferMapAsyncStatus status, void* data, uint64_t dataLength) {
|
||||
void ProcTableAsClass::CallMapWriteCallback(WGPUBuffer buffer,
|
||||
WGPUBufferMapAsyncStatus status,
|
||||
void* data,
|
||||
uint64_t dataLength) {
|
||||
auto object = reinterpret_cast<ProcTableAsClass::Object*>(buffer);
|
||||
object->mapWriteCallback(status, data, dataLength, object->userdata1);
|
||||
}
|
||||
|
||||
void ProcTableAsClass::CallFenceOnCompletionCallback(DawnFence fence,
|
||||
DawnFenceCompletionStatus status) {
|
||||
void ProcTableAsClass::CallFenceOnCompletionCallback(WGPUFence fence,
|
||||
WGPUFenceCompletionStatus status) {
|
||||
auto object = reinterpret_cast<ProcTableAsClass::Object*>(fence);
|
||||
object->fenceOnCompletionCallback(status, object->userdata1);
|
||||
}
|
||||
@@ -12,11 +12,11 @@
|
||||
//* See the License for the specific language governing permissions and
|
||||
//* limitations under the License.
|
||||
|
||||
#ifndef MOCK_DAWN_H
|
||||
#define MOCK_DAWN_H
|
||||
#ifndef MOCK_WEBGPU_H
|
||||
#define MOCK_WEBGPU_H
|
||||
|
||||
#include <dawn/dawn.h>
|
||||
#include <dawn/dawn_proc_table.h>
|
||||
#include <dawn/webgpu.h>
|
||||
#include <gmock/gmock.h>
|
||||
|
||||
#include <memory>
|
||||
@@ -28,7 +28,7 @@ class ProcTableAsClass {
|
||||
public:
|
||||
virtual ~ProcTableAsClass();
|
||||
|
||||
void GetProcTableAndDevice(DawnProcTable* table, DawnDevice* device);
|
||||
void GetProcTableAndDevice(DawnProcTable* table, WGPUDevice* device);
|
||||
|
||||
// Creates an object that can be returned by a mocked call as in WillOnce(Return(foo)).
|
||||
// It returns an object of the write type that isn't equal to any previously returned object.
|
||||
@@ -52,61 +52,61 @@ class ProcTableAsClass {
|
||||
{% endfor %}
|
||||
|
||||
// Stores callback and userdata and calls the On* methods
|
||||
void DeviceSetUncapturedErrorCallback(DawnDevice self,
|
||||
DawnErrorCallback callback,
|
||||
void DeviceSetUncapturedErrorCallback(WGPUDevice self,
|
||||
WGPUErrorCallback callback,
|
||||
void* userdata);
|
||||
bool DevicePopErrorScope(DawnDevice self, DawnErrorCallback callback, void* userdata);
|
||||
void DeviceCreateBufferMappedAsync(DawnDevice self,
|
||||
const DawnBufferDescriptor* descriptor,
|
||||
DawnBufferCreateMappedCallback callback,
|
||||
bool DevicePopErrorScope(WGPUDevice self, WGPUErrorCallback callback, void* userdata);
|
||||
void DeviceCreateBufferMappedAsync(WGPUDevice self,
|
||||
const WGPUBufferDescriptor* descriptor,
|
||||
WGPUBufferCreateMappedCallback callback,
|
||||
void* userdata);
|
||||
void BufferMapReadAsync(DawnBuffer self,
|
||||
DawnBufferMapReadCallback callback,
|
||||
void BufferMapReadAsync(WGPUBuffer self,
|
||||
WGPUBufferMapReadCallback callback,
|
||||
void* userdata);
|
||||
void BufferMapWriteAsync(DawnBuffer self,
|
||||
DawnBufferMapWriteCallback callback,
|
||||
void BufferMapWriteAsync(WGPUBuffer self,
|
||||
WGPUBufferMapWriteCallback callback,
|
||||
void* userdata);
|
||||
void FenceOnCompletion(DawnFence self,
|
||||
void FenceOnCompletion(WGPUFence self,
|
||||
uint64_t value,
|
||||
DawnFenceOnCompletionCallback callback,
|
||||
WGPUFenceOnCompletionCallback callback,
|
||||
void* userdata);
|
||||
|
||||
// Special cased mockable methods
|
||||
virtual void OnDeviceSetUncapturedErrorCallback(DawnDevice device,
|
||||
DawnErrorCallback callback,
|
||||
virtual void OnDeviceSetUncapturedErrorCallback(WGPUDevice device,
|
||||
WGPUErrorCallback callback,
|
||||
void* userdata) = 0;
|
||||
virtual bool OnDevicePopErrorScopeCallback(DawnDevice device,
|
||||
DawnErrorCallback callback,
|
||||
virtual bool OnDevicePopErrorScopeCallback(WGPUDevice device,
|
||||
WGPUErrorCallback callback,
|
||||
void* userdata) = 0;
|
||||
virtual void OnDeviceCreateBufferMappedAsyncCallback(DawnDevice self,
|
||||
const DawnBufferDescriptor* descriptor,
|
||||
DawnBufferCreateMappedCallback callback,
|
||||
virtual void OnDeviceCreateBufferMappedAsyncCallback(WGPUDevice self,
|
||||
const WGPUBufferDescriptor* descriptor,
|
||||
WGPUBufferCreateMappedCallback callback,
|
||||
void* userdata) = 0;
|
||||
virtual void OnBufferMapReadAsyncCallback(DawnBuffer buffer,
|
||||
DawnBufferMapReadCallback callback,
|
||||
virtual void OnBufferMapReadAsyncCallback(WGPUBuffer buffer,
|
||||
WGPUBufferMapReadCallback callback,
|
||||
void* userdata) = 0;
|
||||
virtual void OnBufferMapWriteAsyncCallback(DawnBuffer buffer,
|
||||
DawnBufferMapWriteCallback callback,
|
||||
virtual void OnBufferMapWriteAsyncCallback(WGPUBuffer buffer,
|
||||
WGPUBufferMapWriteCallback callback,
|
||||
void* userdata) = 0;
|
||||
virtual void OnFenceOnCompletionCallback(DawnFence fence,
|
||||
virtual void OnFenceOnCompletionCallback(WGPUFence fence,
|
||||
uint64_t value,
|
||||
DawnFenceOnCompletionCallback callback,
|
||||
WGPUFenceOnCompletionCallback callback,
|
||||
void* userdata) = 0;
|
||||
|
||||
// Calls the stored callbacks
|
||||
void CallDeviceErrorCallback(DawnDevice device, DawnErrorType type, const char* message);
|
||||
void CallCreateBufferMappedCallback(DawnDevice device, DawnBufferMapAsyncStatus status, DawnCreateBufferMappedResult result);
|
||||
void CallMapReadCallback(DawnBuffer buffer, DawnBufferMapAsyncStatus status, const void* data, uint64_t dataLength);
|
||||
void CallMapWriteCallback(DawnBuffer buffer, DawnBufferMapAsyncStatus status, void* data, uint64_t dataLength);
|
||||
void CallFenceOnCompletionCallback(DawnFence fence, DawnFenceCompletionStatus status);
|
||||
void CallDeviceErrorCallback(WGPUDevice device, WGPUErrorType type, const char* message);
|
||||
void CallCreateBufferMappedCallback(WGPUDevice device, WGPUBufferMapAsyncStatus status, WGPUCreateBufferMappedResult result);
|
||||
void CallMapReadCallback(WGPUBuffer buffer, WGPUBufferMapAsyncStatus status, const void* data, uint64_t dataLength);
|
||||
void CallMapWriteCallback(WGPUBuffer buffer, WGPUBufferMapAsyncStatus status, void* data, uint64_t dataLength);
|
||||
void CallFenceOnCompletionCallback(WGPUFence fence, WGPUFenceCompletionStatus status);
|
||||
|
||||
struct Object {
|
||||
ProcTableAsClass* procs = nullptr;
|
||||
DawnErrorCallback deviceErrorCallback = nullptr;
|
||||
DawnBufferCreateMappedCallback createBufferMappedCallback = nullptr;
|
||||
DawnBufferMapReadCallback mapReadCallback = nullptr;
|
||||
DawnBufferMapWriteCallback mapWriteCallback = nullptr;
|
||||
DawnFenceOnCompletionCallback fenceOnCompletionCallback = nullptr;
|
||||
WGPUErrorCallback deviceErrorCallback = nullptr;
|
||||
WGPUBufferCreateMappedCallback createBufferMappedCallback = nullptr;
|
||||
WGPUBufferMapReadCallback mapReadCallback = nullptr;
|
||||
WGPUBufferMapWriteCallback mapWriteCallback = nullptr;
|
||||
WGPUFenceOnCompletionCallback fenceOnCompletionCallback = nullptr;
|
||||
void* userdata1 = 0;
|
||||
void* userdata2 = 0;
|
||||
};
|
||||
@@ -138,16 +138,16 @@ class MockProcTable : public ProcTableAsClass {
|
||||
MOCK_METHOD1({{as_MethodSuffix(type.name, Name("release"))}}, void({{as_cType(type.name)}} self));
|
||||
{% endfor %}
|
||||
|
||||
MOCK_METHOD3(OnDeviceSetUncapturedErrorCallback, void(DawnDevice device, DawnErrorCallback callback, void* userdata));
|
||||
MOCK_METHOD3(OnDevicePopErrorScopeCallback, bool(DawnDevice device, DawnErrorCallback callback, void* userdata));
|
||||
MOCK_METHOD4(OnDeviceCreateBufferMappedAsyncCallback, void(DawnDevice device, const DawnBufferDescriptor* descriptor, DawnBufferCreateMappedCallback callback, void* userdata));
|
||||
MOCK_METHOD3(OnBufferMapReadAsyncCallback, void(DawnBuffer buffer, DawnBufferMapReadCallback callback, void* userdata));
|
||||
MOCK_METHOD3(OnBufferMapWriteAsyncCallback, void(DawnBuffer buffer, DawnBufferMapWriteCallback callback, void* userdata));
|
||||
MOCK_METHOD3(OnDeviceSetUncapturedErrorCallback, void(WGPUDevice device, WGPUErrorCallback callback, void* userdata));
|
||||
MOCK_METHOD3(OnDevicePopErrorScopeCallback, bool(WGPUDevice device, WGPUErrorCallback callback, void* userdata));
|
||||
MOCK_METHOD4(OnDeviceCreateBufferMappedAsyncCallback, void(WGPUDevice device, const WGPUBufferDescriptor* descriptor, WGPUBufferCreateMappedCallback callback, void* userdata));
|
||||
MOCK_METHOD3(OnBufferMapReadAsyncCallback, void(WGPUBuffer buffer, WGPUBufferMapReadCallback callback, void* userdata));
|
||||
MOCK_METHOD3(OnBufferMapWriteAsyncCallback, void(WGPUBuffer buffer, WGPUBufferMapWriteCallback callback, void* userdata));
|
||||
MOCK_METHOD4(OnFenceOnCompletionCallback,
|
||||
void(DawnFence fence,
|
||||
void(WGPUFence fence,
|
||||
uint64_t value,
|
||||
DawnFenceOnCompletionCallback callback,
|
||||
WGPUFenceOnCompletionCallback callback,
|
||||
void* userdata));
|
||||
};
|
||||
|
||||
#endif // MOCK_DAWN_H
|
||||
#endif // MOCK_WEBGPU_H
|
||||
Reference in New Issue
Block a user