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