blob: 8fd9d08d3c818bcf6b15f4f90ee2b603e2076646 [file] [log] [blame]
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);
});