forked from KhronosGroup/WebGL
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Shader source character set and preprocess validation test (KhronosGr…
…oup#3124) * Shader source character set and preprocess validation test * fix style * add invalid test
- Loading branch information
Showing
3 changed files
with
136 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
<!-- | ||
Copyright (c) 2020 The Khronos Group Inc. | ||
Use of this source code is governed by an MIT-style license that can be | ||
found in the LICENSE.txt file. | ||
--> | ||
|
||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8"> | ||
<title>Character Set</title> | ||
<link rel="stylesheet" href="../../../resources/js-test-style.css"/> | ||
<script src="../../../js/js-test-pre.js"></script> | ||
<script src="../../../js/webgl-test-utils.js"></script> | ||
<script src="../../../js/glsl-conformance-test.js"></script> | ||
</head> | ||
<body> | ||
|
||
<script id="fs-invalid-0" type="x-shader/x-fragment"> | ||
precision mediump float; | ||
$ | ||
void main() { | ||
gl_FragColor = vec4(1, 0, 0, 1); | ||
} | ||
</script> | ||
|
||
<script id="fs-invalid-1" type="x-shader/x-fragment"> | ||
precision mediump float; | ||
一些注释 | ||
void main() { | ||
gl_FragColor = vec4(1, 0, 0, 1); | ||
} | ||
</script> | ||
|
||
<script id="fs-invalid-2" type="x-shader/x-fragment"> | ||
precision mediump float; | ||
#if defined(NOT_DEFINED_FOO) | ||
一些注释 | ||
#endif | ||
void main() { | ||
gl_FragColor = vec4(1, 0, 0, 1); | ||
} | ||
</script> | ||
|
||
<script id="fs-comment-valid" type="x-shader/x-fragment"> | ||
precision mediump float; | ||
// some comment: asdf1234~!@#$%^&*()-=[];',./{}:"?><_+ | ||
// some comment: 一些注释 (╯‵□′)╯︵┻━┻ | ||
// some comment: \\\\\\\\\ | ||
// some comment: \n\\r\n | ||
void main() { | ||
gl_FragColor = vec4(1, 0, 0, 1); | ||
} | ||
</script> | ||
|
||
<script id="fs-cleared-by-preprocessing-valid" type="x-shader/x-fragment"> | ||
precision mediump float; | ||
#if defined(GL_GOOGLE_cpp_style_line_directive) | ||
#line 9 "foo.txt" | ||
#endif | ||
void main() { | ||
gl_FragColor = vec4(1, 0, 0, 1); | ||
} | ||
</script> | ||
|
||
<div id="description"></div> | ||
<div id="console"></div> | ||
<canvas id="canvas" width="2" height="2"> </canvas> | ||
<script> | ||
"use strict"; | ||
// See http://crbug.com/1108588 for original failing case. | ||
// Check "OpenGL Registry The OpenGL ES Shading Language" | ||
// Section 3.2 Character Sets For more info | ||
description("This test checks character set validation for glsl."); | ||
|
||
debug(""); | ||
debug("Canvas.getContext"); | ||
|
||
var wtu = WebGLTestUtils; | ||
var gl = wtu.create3DContext("canvas"); | ||
if (!gl) { | ||
testFailed("context does not exist"); | ||
} else { | ||
testPassed("context exists"); | ||
|
||
debug(""); | ||
debug("Checking shader character set validation and compilation"); | ||
|
||
runTest(); | ||
} | ||
|
||
function runTest() { | ||
GLSLConformanceTester.runTests([ | ||
{ | ||
fShaderId: 'fs-invalid-0', | ||
fShaderSuccess: false, | ||
linkSuccess: false, | ||
passMsg: 'Unallowed characters detected' | ||
}, | ||
{ | ||
fShaderId: 'fs-invalid-1', | ||
fShaderSuccess: false, | ||
linkSuccess: false, | ||
passMsg: 'Unallowed characters detected' | ||
}, | ||
{ | ||
fShaderId: 'fs-invalid-2', | ||
fShaderSuccess: false, | ||
linkSuccess: false, | ||
passMsg: 'Non ASCII characters detected that would be cleared by preprocessing step is still invalid' | ||
}, | ||
{ | ||
fShaderId: 'fs-comment-valid', | ||
fShaderSuccess: true, | ||
linkSuccess: true, | ||
passMsg: 'Unallowed characters and UTF-8 characters in comment are valid' | ||
}, | ||
{ | ||
fShaderId: 'fs-cleared-by-preprocessing-valid', | ||
fShaderSuccess: true, | ||
linkSuccess: true, | ||
passMsg: 'Unsupported shader extensions (with invalid ASCII characters) cleared by preprocessing step is valid' | ||
}, | ||
]); | ||
} | ||
|
||
debug(""); | ||
var successfullyParsed = true; | ||
|
||
</script> | ||
<script src="../../../js/js-test-post.js"></script> | ||
|
||
</body> | ||
</html> |