diff options
Diffstat (limited to 'dom/canvas/test/webgl-conf/checkout/conformance/glsl/literals')
4 files changed, 150 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/glsl/literals/00_test_list.txt b/dom/canvas/test/webgl-conf/checkout/conformance/glsl/literals/00_test_list.txt new file mode 100644 index 0000000000..50802bf346 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/glsl/literals/00_test_list.txt @@ -0,0 +1,3 @@ +float_literal.vert.html +--min-version 1.0.3 literal_precision.html +overflow_leak.vert.html diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/glsl/literals/float_literal.vert.html b/dom/canvas/test/webgl-conf/checkout/conformance/glsl/literals/float_literal.vert.html new file mode 100644 index 0000000000..86bbf8a883 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/glsl/literals/float_literal.vert.html @@ -0,0 +1,51 @@ +<!-- +Copyright (c) 2019 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>WebGL GLSL Conformance Tests</title> +<link rel="stylesheet" href="../../../resources/js-test-style.css"/> +<link rel="stylesheet" href="../../../resources/glsl-feature-tests.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> +<div id="description"></div> +<div id="console"></div> +<script id="vertexShader" type="text/something-not-javascript"> + +// parsing floating point literals should succeed +void main() { + float zero = 0.0; + float fractionalConstant = 1.0; + float fractionalConstantExponent = 1.0e1; + float fractionalConstantPosExponent = 1.0e+1; + float fractionalConstantNegExponent = 1.0e-1; + float digitSequenceExponent = 1e1; + float digitSequencePosExponent = 1e+1; + float digitSequenceNegExponent = 1e-1; + float pointDigit = .1; + float digitPoint= 1.; + float upperCaseExponent = 1.0E1; + highp float posInRange = 4611686018427387903.; // 2^62 - 1 + highp float posOutRange = 4611686018427387905.; // 2^62 + 1 + highp float posHuge = 1E100; + highp float negInRange = -4611686018427387903.; + highp float negOutRange = -4611686018427387905.; + highp float negHuge = -1E100; + gl_Position = vec4(0.0, 0.0, 0.0, 1.0); +} +</script> +<script> +"use strict"; +GLSLConformanceTester.runTest(); +var successfullyParsed = true; +</script> +</body> +</html> diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/glsl/literals/literal_precision.html b/dom/canvas/test/webgl-conf/checkout/conformance/glsl/literals/literal_precision.html new file mode 100644 index 0000000000..c2ccbbe1ce --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/glsl/literals/literal_precision.html @@ -0,0 +1,35 @@ +<!-- +Copyright (c) 2019 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>WebGL GLSL Conformance Tests</title> +<link rel="stylesheet" href="../../../resources/js-test-style.css"/> +<link rel="stylesheet" href="../../../resources/glsl-feature-tests.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> +<div id="description"></div> +<div id="console"></div> +<script id="vertexShader" type="text/something-not-javascript"> + +// parsing floating point literals with precision should fail +void main() { + mediump float zero = mediump 0.0; + gl_Position = vec4(zero, 0.0, 0.0, 1.0); +} +</script> +<script> +"use strict"; +GLSLConformanceTester.runTest(); +var successfullyParsed = true; +</script> +</body> +</html> diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/glsl/literals/overflow_leak.vert.html b/dom/canvas/test/webgl-conf/checkout/conformance/glsl/literals/overflow_leak.vert.html new file mode 100644 index 0000000000..b11960dd5f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/glsl/literals/overflow_leak.vert.html @@ -0,0 +1,61 @@ +<!-- +Copyright (c) 2019 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>WebGL GLSL Conformance Tests</title> +<link rel="stylesheet" href="../../../resources/js-test-style.css"/> +<link rel="stylesheet" href="../../../resources/glsl-feature-tests.css"/> +<script src="../../../js/js-test-pre.js"></script> +<script src="../../../js/webgl-test-utils.js"></script> +</head> +<body> +<div id="description"></div> +<div id="console"></div> +<canvas id="example" width="2" height="2"> </canvas> +<script id="vshader" type="x-shader/x-vertex"> +// float literal overflow should not affect next literal parsing. +precision mediump float; + +varying vec4 v_color; +attribute vec4 a_position; +void main() { + highp float floatOverflow = 1E100; + int i = 10; + if (i == 10) + v_color = vec4(0.0, 1.0, 0.0, 1.0); + else + v_color = vec4(1.0, 0.0, 0.0, 1.0); + gl_Position = a_position; +} +</script> +<script id="fshader" type="x-shader/x-fragment"> +precision mediump float; + +varying vec4 v_color; +void main() { + gl_FragColor = v_color; +} +</script> +<script> +"use strict"; +description(); +var wtu = WebGLTestUtils; +var gl = wtu.create3DContext("example"); +wtu.setupUnitQuad(gl); +var program = wtu.setupProgram(gl, ["vshader", "fshader"]); +if (!program) + testFailed("Fail to setup program"); +wtu.clearAndDrawUnitQuad(gl); +wtu.checkCanvas(gl, [0, 255, 0, 255], "should be green"); + +var successfullyParsed = true; +</script> +<script src="../../../js/js-test-post.js"></script> +</body> +</html> |