export const description = `Validation tests for comments`;import { makeTestGroup } from '../../../../common/framework/test_group.js';import { ShaderValidationTest } from '../shader_validation_test.js';export const g = makeTestGroup(ShaderValidationTest);g.test('comments').desc(`Test that valid comments are handled correctly, including nesting.`).fn(t => {const code = `/*** Here is my shader.** /* I can nest /**/ comments. */* // I can nest line comments too.**/@fragment // This is the stagefn main(/*noparameters*/) -> @location(0) vec4<f32> {return/*block_comments_delimit_tokens*/vec4<f32>(.4, .2, .3, .1);}/* terminated block comments are OK at EOF...*/`;t.expectCompileResult(true, code);});g.test('line_comment_eof').desc(`Test that line comments can come at EOF.`).fn(t => {const code = `@fragmentfn main() -> @location(0) vec4<f32> {return vec4<f32>(.4, .2, .3, .1);}// line comments are OK at EOF...`;t.expectCompileResult(true, code);});g.test('line_comment_terminators').desc(`Test that line comments are terminated by any blankspace other than space and \t`).params(u =>u.combine('blankspace', [[' ', 'space'],['\t', 'tab'],['\u000a', 'line_feed'],['\u000b', 'vertical_tab'],['\u000c', 'form_feed'],['\u000d', 'carriage_return'],['\u000d\u000a', 'carriage_return_line_feed'],['\u0085', 'next_line'],['\u2028', 'line_separator'],['\u2029', 'paragraph_separator'],]).beginSubcases()).fn(t => {const code = `// Line comment${t.params.blankspace[0]}const invalid_outside_comment = should_fail`;t.expectCompileResult([' ', '\t'].includes(t.params.blankspace[0]), code);});g.test('unterminated_block_comment').desc(`Test that unterminated block comments cause an error`).params(u => u.combine('terminated', [true, false]).beginSubcases()).fn(t => {const code = `/*** Unterminated block comment.*${t.params.terminated ? '*/' : ''}`;t.expectCompileResult(t.params.terminated, code);});