[dawn][test] Update to use C++ types in some unittests.

Change-Id: I3d94113de10bcb28f845cb38f02ea1bab4db20b9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/213094
Reviewed-by: Shrek Shao <shrekshao@google.com>
Commit-Queue: Loko Kung <lokokung@google.com>
Auto-Submit: Loko Kung <lokokung@google.com>
Commit-Queue: Shrek Shao <shrekshao@google.com>
diff --git a/src/dawn/tests/unittests/wire/WireCreatePipelineAsyncTests.cpp b/src/dawn/tests/unittests/wire/WireCreatePipelineAsyncTests.cpp
index b5844da..9e55223 100644
--- a/src/dawn/tests/unittests/wire/WireCreatePipelineAsyncTests.cpp
+++ b/src/dawn/tests/unittests/wire/WireCreatePipelineAsyncTests.cpp
@@ -26,6 +26,7 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #include <memory>
+#include <utility>
 
 #include "dawn/common/StringViewUtils.h"
 #include "dawn/dawn_proc.h"
@@ -319,52 +320,43 @@
     dawnProcSetProcs(&dawn::wire::client::GetProcs());
 
     auto reserved = wireClient->ReserveInstance();
-    WGPUInstance instance = reserved.instance;
+    wgpu::Instance instance = wgpu::Instance::Acquire(reserved.instance);
     wireServer->InjectInstance(dawn::native::GetProcs().createInstance(nullptr), reserved.handle);
 
-    WGPURequestAdapterOptions adapterOptions = {};
-    adapterOptions.backendType = WGPUBackendType_Null;
+    wgpu::RequestAdapterOptions adapterOptions = {};
+    adapterOptions.backendType = wgpu::BackendType::Null;
 
-    WGPUAdapter adapter;
-    wgpuInstanceRequestAdapter(
-        instance, &adapterOptions,
-        [](WGPURequestAdapterStatus status, WGPUAdapter adapter, WGPUStringView, void* userdata) {
-            *static_cast<WGPUAdapter*>(userdata) = adapter;
-        },
-        &adapter);
+    wgpu::Adapter adapter;
+    instance.RequestAdapter(&adapterOptions, wgpu::CallbackMode::AllowSpontaneous,
+                            [&adapter](wgpu::RequestAdapterStatus, wgpu::Adapter result,
+                                       wgpu::StringView) { adapter = std::move(result); });
     ASSERT_TRUE(c2sBuf->Flush());
     ASSERT_TRUE(s2cBuf->Flush());
 
-    WGPUDeviceDescriptor deviceDesc = {};
-    WGPUDevice device;
-    wgpuAdapterRequestDevice(
-        adapter, &deviceDesc,
-        [](WGPURequestDeviceStatus status, WGPUDevice device, WGPUStringView, void* userdata) {
-            *static_cast<WGPUDevice*>(userdata) = device;
-        },
-        &device);
+    wgpu::DeviceDescriptor deviceDesc = {};
+    wgpu::Device device;
+    adapter.RequestDevice(&deviceDesc, wgpu::CallbackMode::AllowSpontaneous,
+                          [&device](wgpu::RequestDeviceStatus, wgpu::Device result,
+                                    wgpu::StringView) { device = std::move(result); });
     ASSERT_TRUE(c2sBuf->Flush());
     ASSERT_TRUE(s2cBuf->Flush());
 
-    WGPUShaderSourceWGSL wgslDesc = WGPU_SHADER_SOURCE_WGSL_INIT;
+    wgpu::ShaderSourceWGSL wgslDesc = {};
     wgslDesc.code.data = "@compute @workgroup_size(64) fn main() {}";
 
-    WGPUShaderModuleDescriptor smDesc = {};
-    smDesc.nextInChain = &wgslDesc.chain;
+    wgpu::ShaderModuleDescriptor smDesc = {};
+    smDesc.nextInChain = &wgslDesc;
 
-    WGPUShaderModule sm = wgpuDeviceCreateShaderModule(device, &smDesc);
+    wgpu::ShaderModule sm = device.CreateShaderModule(&smDesc);
 
-    WGPUComputePipelineDescriptor computeDesc = WGPU_COMPUTE_PIPELINE_DESCRIPTOR_INIT;
+    wgpu::ComputePipelineDescriptor computeDesc = {};
     computeDesc.compute.module = sm;
 
-    WGPUComputePipeline pipeline = nullptr;
-    wgpuDeviceCreateComputePipelineAsync(
-        device, &computeDesc,
-        [](WGPUCreatePipelineAsyncStatus status, WGPUComputePipeline pipeline,
-           WGPUStringView message,
-           void* userdata) { *static_cast<WGPUComputePipeline*>(userdata) = pipeline; },
-        &pipeline);
-
+    wgpu::ComputePipeline pipeline;
+    device.CreateComputePipelineAsync(
+        &computeDesc, wgpu::CallbackMode::AllowSpontaneous,
+        [&pipeline](wgpu::CreatePipelineAsyncStatus, wgpu::ComputePipeline result,
+                    wgpu::StringView) { pipeline = std::move(result); });
     ASSERT_TRUE(c2sBuf->Flush());
 
     // Delete the server. It should force async work to complete.
@@ -374,11 +366,11 @@
     ASSERT_TRUE(s2cBuf->Flush());
     ASSERT_NE(pipeline, nullptr);
 
-    wgpuComputePipelineRelease(pipeline);
-    wgpuShaderModuleRelease(sm);
-    wgpuDeviceRelease(device);
-    wgpuAdapterRelease(adapter);
-    wgpuInstanceRelease(instance);
+    pipeline = nullptr;
+    sm = nullptr;
+    device = nullptr;
+    adapter = nullptr;
+    instance = nullptr;
 
     s2cBuf->SetHandler(nullptr);
 }