Skip to content

Commit

Permalink
Test that constructable objects are actually constructable
Browse files Browse the repository at this point in the history
  • Loading branch information
greggman committed Dec 8, 2023
1 parent 3cbe1f7 commit d2ac080
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
56 changes: 56 additions & 0 deletions src/webgpu/idl/constructable.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
export const description = `
Test that constructable WebGPU objects are actually constructable.
`;

import { keysOf } from '../../common/util/data_tables.js';

import { makeTestGroup } from './../../common/framework/test_group.js';
import { IDLTest } from './idl_test.js';

export const g = makeTestGroup(IDLTest);

const errors = {
GPUInternalError: globalThis.GPUInternalError,
GPUOutOfMemoryError: globalThis.GPUOutOfMemoryError,
GPUValidationError: globalThis.GPUValidationError,
};

g.test('gpu_errors')
.desc('tests that GPUErrors are constructable')
.params(u => u.combine('errorType', keysOf(errors)))
.fn(t => {
const { errorType } = t.params;
const Ctor = errors[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);
});
3 changes: 3 additions & 0 deletions src/webgpu/listing_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -870,6 +870,9 @@
"webgpu:idl,constants,flags:ShaderStage,values:*": { "subcaseMS": 0.034 },
"webgpu:idl,constants,flags:TextureUsage,count:*": { "subcaseMS": 0.101 },
"webgpu:idl,constants,flags:TextureUsage,values:*": { "subcaseMS": 0.040 },
"webgpu:idl,constructable:gpu_errors:*": { "subcaseMS": 0.101 },
"webgpu:idl,constructable:pipeline_errors:*": { "subcaseMS": 0.101 },
"webgpu:idl,constructable:uncaptured_error_event:*": { "subcaseMS": 0.101 },
"webgpu:shader,execution,expression,binary,af_addition:scalar:*": { "subcaseMS": 815.300 },
"webgpu:shader,execution,expression,binary,af_addition:scalar_vector:*": { "subcaseMS": 1803.434 },
"webgpu:shader,execution,expression,binary,af_addition:vector:*": { "subcaseMS": 719.600 },
Expand Down

0 comments on commit d2ac080

Please sign in to comment.