export const description = `Validation tests for break`;import { makeTestGroup } from '../../../../common/framework/test_group.js';import { keysOf } from '../../../../common/util/data_tables.js';import { ShaderValidationTest } from '../shader_validation_test.js';export const g = makeTestGroup(ShaderValidationTest);const kTests = {loop_break: {src: 'loop { break; }',pass: true,},loop_if_break: {src: 'loop { if true { break; } }',pass: true,},while_break: {src: 'while true { break; }',pass: true,},while_if_break: {src: 'while true { if true { break; } }',pass: true,},for_break: {src: 'for (;;) { break; }',pass: true,},for_if_break: {src: 'for (;;) { if true { break; } }',pass: true,},switch_case_break: {src: 'switch(1) { default: { break; } }',pass: true,},switch_case_if_break: {src: 'switch(1) { default: { if true { break; } } }',pass: true,},break: {src: 'break;',pass: false,},return_break: {src: 'return break;',pass: false,},if_break: {src: 'if true { break; }',pass: false,},continuing_break: {src: 'loop { continuing { break; } }',pass: false,},continuing_if_break: {src: 'loop { continuing { if (true) { break; } } }',pass: false,},switch_break: {src: 'switch(1) { break; }',pass: false,},};g.test('placement').desc('Test that break placement is validated correctly').params(u => u.combine('stmt', keysOf(kTests))).fn(t => {const code = `@vertexfn vtx() -> @builtin(position) vec4f {${kTests[t.params.stmt].src}return vec4f(1);}`;t.expectCompileResult(kTests[t.params.stmt].pass, code);});