export const description = `Parser validation tests for const_assert`; 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 kCases = { no_parentheses: { code: `const_assert true;`, pass: true }, left_parenthesis_only: { code: `const_assert(true;`, pass: false }, right_parenthesis_only: { code: `const_assert true);`, pass: false }, both_parentheses: { code: `const_assert(true);`, pass: true }, condition_on_newline: { code: `const_assert true;`, pass: true, }, multiline_with_parentheses: { code: `const_assert ( true );`, pass: true, }, invalid_expression: { code: `const_assert(1!2);`, pass: false }, no_condition_no_parentheses: { code: `const_assert;`, pass: false }, no_condition_with_parentheses: { code: `const_assert();`, pass: false }, not_a_boolean: { code: `const_assert 42;`, pass: false }, }; g.test('parse') .desc(`Tests that the const_assert statement parses correctly.`) .params(u => u.combine('case', keysOf(kCases))) .fn(t => { const c = kCases[t.params.case]; t.expectCompileResult(c.pass, c.code); });