diff --git a/src/webgpu/shader/validation/decl/const.spec.ts b/src/webgpu/shader/validation/decl/const.spec.ts index a12b711d5d49..11466c03d1ad 100644 --- a/src/webgpu/shader/validation/decl/const.spec.ts +++ b/src/webgpu/shader/validation/decl/const.spec.ts @@ -150,13 +150,12 @@ const kTypeCases = { g.test('type') .desc('Test const types') .params(u => u.combine('case', keysOf(kTypeCases))) - .beforeAllSubcases(t => { + .fn(t => { if (t.params.case === 'f16') { - t.selectDeviceOrSkipTestCase('shader-f16'); + t.skipIfDeviceDoesNotHaveFeature('shader-f16'); } - }) - .fn(t => { const testcase = kTypeCases[t.params.case]; + const code = testcase.code; const expect = testcase.valid; t.expectCompileResult(expect, code); diff --git a/src/webgpu/shader/validation/decl/context_dependent_resolution.spec.ts b/src/webgpu/shader/validation/decl/context_dependent_resolution.spec.ts index 2d51a7c6bfb6..403f4e72b0f4 100644 --- a/src/webgpu/shader/validation/decl/context_dependent_resolution.spec.ts +++ b/src/webgpu/shader/validation/decl/context_dependent_resolution.spec.ts @@ -211,10 +211,9 @@ g.test('enable_names') .beginSubcases() .combine('decl', ['override', 'const', 'var'] as const) ) - .beforeAllSubcases(t => { - t.selectDeviceOrSkipTestCase('shader-f16'); - }) .fn(t => { + t.skipIfDeviceDoesNotHaveFeature('shader-f16'); + const code = ` ${kEnableCases[t.params.case]} ${t.params.decl} ${t.params.case} : u32 = 0; diff --git a/src/webgpu/shader/validation/decl/let.spec.ts b/src/webgpu/shader/validation/decl/let.spec.ts index de9a94963567..0a37534cdca8 100644 --- a/src/webgpu/shader/validation/decl/let.spec.ts +++ b/src/webgpu/shader/validation/decl/let.spec.ts @@ -94,13 +94,12 @@ const kTypeCases: Record = { g.test('type') .desc('Test let types') .params(u => u.combine('case', keysOf(kTypeCases))) - .beforeAllSubcases(t => { + .fn(t => { if (t.params.case === 'f16') { - t.selectDeviceOrSkipTestCase('shader-f16'); + t.skipIfDeviceDoesNotHaveFeature('shader-f16'); } - }) - .fn(t => { const testcase = kTypeCases[t.params.case]; + const code = ` ${t.params.case === 'f16' ? 'enable f16;' : ''} ${testcase.decls ?? ''} diff --git a/src/webgpu/shader/validation/decl/override.spec.ts b/src/webgpu/shader/validation/decl/override.spec.ts index 3d1d28d86cbd..59fe3d6a598d 100644 --- a/src/webgpu/shader/validation/decl/override.spec.ts +++ b/src/webgpu/shader/validation/decl/override.spec.ts @@ -136,13 +136,12 @@ const kTypeCases = { g.test('type') .desc('Test override types') .params(u => u.combine('case', keysOf(kTypeCases))) - .beforeAllSubcases(t => { + .fn(t => { if (t.params.case === 'f16') { - t.selectDeviceOrSkipTestCase('shader-f16'); + t.skipIfDeviceDoesNotHaveFeature('shader-f16'); } - }) - .fn(t => { const testcase = kTypeCases[t.params.case]; + const code = testcase.code; const expect = testcase.valid; t.expectCompileResult(expect, code); diff --git a/src/webgpu/shader/validation/decl/var.spec.ts b/src/webgpu/shader/validation/decl/var.spec.ts index 1abf8bcf4fdb..a4afc6ab84e5 100644 --- a/src/webgpu/shader/validation/decl/var.spec.ts +++ b/src/webgpu/shader/validation/decl/var.spec.ts @@ -225,12 +225,10 @@ g.test('module_scope_types') ]) .combine('via_alias', [false, true]) ) - .beforeAllSubcases(t => { + .fn(t => { if (kTypes[t.params.type].requiresF16) { - t.selectDeviceOrSkipTestCase('shader-f16'); + t.skipIfDeviceDoesNotHaveFeature('shader-f16'); } - }) - .fn(t => { const type = kTypes[t.params.type]; const isAtomic = t.params.type.indexOf('atomic') > -1; @@ -296,12 +294,10 @@ g.test('function_scope_types') .combine('kind', ['comment', 'var']) .combine('via_alias', [false, true]) ) - .beforeAllSubcases(t => { + .fn(t => { if (kTypes[t.params.type].requiresF16) { - t.selectDeviceOrSkipTestCase('shader-f16'); + t.skipIfDeviceDoesNotHaveFeature('shader-f16'); } - }) - .fn(t => { const type = kTypes[t.params.type]; let decl = '<>';