| export const description = ` |
| Test that constructable WebGPU objects are actually constructable. |
| `; |
| |
| import { makeTestGroup } from './../../common/framework/test_group.js'; |
| import { IDLTest } from './idl_test.js'; |
| |
| export const g = makeTestGroup(IDLTest); |
| |
| g.test('gpu_errors') |
| .desc('tests that GPUErrors are constructable') |
| .params(u => |
| u.combine('errorType', [ |
| 'GPUInternalError', |
| 'GPUOutOfMemoryError', |
| 'GPUValidationError', |
| ] as const) |
| ) |
| .fn(t => { |
| const { errorType } = t.params; |
| const Ctor = globalThis[errorType]; |
| const msg = 'this is a test'; |
| const error = new Ctor(msg); |
| t.expect(error.message === msg); |
| }); |
| |
| const pipelineErrorOptions: GPUPipelineErrorInit[] = [ |
| { reason: 'validation' }, |
| { reason: 'internal' }, |
| ]; |
| |
| g.test('pipeline_errors') |
| .desc('tests that GPUPipelineError is constructable') |
| .params(u => |
| u // |
| .combine('msg', [undefined, 'some msg']) |
| .combine('options', pipelineErrorOptions) |
| ) |
| .fn(t => { |
| const { msg, options } = t.params; |
| const error = new GPUPipelineError(msg, options); |
| const expectedMsg = msg || ''; |
| t.expect(error.message === expectedMsg); |
| t.expect(error.reason === options.reason); |
| }); |
| |
| g.test('uncaptured_error_event') |
| .desc('tests that GPUUncapturedErrorEvent is constructable') |
| .fn(t => { |
| const msg = 'this is a test'; |
| const error = new GPUValidationError(msg); |
| const event = new GPUUncapturedErrorEvent('uncapturedError', { error }); |
| t.expect(event.error === error); |
| }); |