summaryrefslogtreecommitdiff
path: root/src/tests/common
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-21 10:02:22 +0100
committerskal <pascal.massimino@gmail.com>2026-02-21 10:02:22 +0100
commit53187e2d930cf982a0bc7f99262586c6a8a0640a (patch)
treef5ae136bda067be82a679ab8a13ee0bde67d236b /src/tests/common
parentde9bc553ed0e8bda42057ac441936c20a8185f60 (diff)
test: fix test_effect_base intermittent crashes and SIGTRAP
- Fix stack-use-after-scope dangling reference by storing mutable GpuContext in WebGPUTestFixture. - Fix wgpuDevicePoll causing SIGTRAP and replace with target.read_pixels() to block for GPU teardown safely. - Fix WGPUCommandEncoder leak.
Diffstat (limited to 'src/tests/common')
-rw-r--r--src/tests/common/webgpu_test_fixture.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/tests/common/webgpu_test_fixture.h b/src/tests/common/webgpu_test_fixture.h
index e10a2ed..fa23587 100644
--- a/src/tests/common/webgpu_test_fixture.h
+++ b/src/tests/common/webgpu_test_fixture.h
@@ -34,8 +34,9 @@ class WebGPUTestFixture {
WGPUTextureFormat format() const {
return WGPUTextureFormat_BGRA8Unorm;
}
- GpuContext ctx() const {
- return {device_, queue_, format()};
+ const GpuContext& ctx() const {
+ ctx_ = {device_, queue_, format()};
+ return ctx_;
}
// Check if fixture is ready
@@ -48,6 +49,7 @@ class WebGPUTestFixture {
WGPUAdapter adapter_ = nullptr;
WGPUDevice device_ = nullptr;
WGPUQueue queue_ = nullptr;
+ mutable GpuContext ctx_ = {};
// Callback state for async device request
struct RequestState {