[WebGL] Correct uniform input validation for texture sampler uniforms
authorbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 12 Jan 2014 03:53:39 +0000 (03:53 +0000)
committerbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 12 Jan 2014 03:53:39 +0000 (03:53 +0000)
https://bugs.webkit.org/show_bug.cgi?id=126775

Reviewed by Anders Carlsson.

* fast/canvas/webgl/uniform-samplers-test-expected.txt: Added.
* fast/canvas/webgl/uniform-samplers-test.html: Corrected resource
includes when moving from khronos suite to our fast suite.
* resources/js-test-pre.js:
(expectTrue): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@161794 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/canvas/webgl/uniform-samplers-test-expected.txt [new file with mode: 0644]
LayoutTests/fast/canvas/webgl/uniform-samplers-test.html
LayoutTests/resources/js-test-pre.js

index 76e1f87..9cad2fb 100644 (file)
@@ -1,3 +1,16 @@
+2014-01-11  Brent Fulgham  <bfulgham@apple.com>
+
+        [WebGL] Correct uniform input validation for texture sampler uniforms
+        https://bugs.webkit.org/show_bug.cgi?id=126775
+
+        Reviewed by Anders Carlsson.
+
+        * fast/canvas/webgl/uniform-samplers-test-expected.txt: Added.
+        * fast/canvas/webgl/uniform-samplers-test.html: Corrected resource
+        includes when moving from khronos suite to our fast suite.
+        * resources/js-test-pre.js:
+        (expectTrue): Added.
+
 2014-01-11  Dean Jackson  <dino@apple.com>
 
         [JSC] Revise typed array implementations to match ECMAScript and WebGL Specification
diff --git a/LayoutTests/fast/canvas/webgl/uniform-samplers-test-expected.txt b/LayoutTests/fast/canvas/webgl/uniform-samplers-test-expected.txt
new file mode 100644 (file)
index 0000000..afd563c
--- /dev/null
@@ -0,0 +1,17 @@
+Tests that only Uniform1i and Uniform1iv can be used to setsampler uniforms.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+PASS getError was expected value: NO_ERROR : uniform1i can set a sampler uniform
+PASS getError was expected value: NO_ERROR : uniform1iv can set a sampler uniform
+PASS getError was expected value: NO_ERROR : uniform1iv can set a sampler uniform
+PASS getError was expected value: INVALID_OPERATION : uniform1f returns INVALID_OPERATION if attempting to set a sampler uniform
+PASS getError was expected value: INVALID_OPERATION : uniform1fv returns INVALID_OPERATION if attempting to set a sampler uniform
+PASS uniform1i works for any valid texture unit
+PASS uniform1iv works for any valid texture unit
+PASS uniform1i generates INVALID_VALUE for invalid texture units
+PASS uniform1iv generates INVALID_VALUE for invalid texture units
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
index b89680e..121a5af 100644 (file)
@@ -1,39 +1,10 @@
-<!--
-
-/*
-** Copyright (c) 2012 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
--->
-
-<!DOCTYPE html>
 <html>
   <head>
 <meta charset="utf-8">
     <title>WebGL sampler uniforms conformance test.</title>
-    <link rel="stylesheet" href="../../resources/js-test-style.css"/>
-    <script src="../../resources/js-test-pre.js"></script>
-    <script src="../resources/webgl-test.js"> </script>
-    <script src="../resources/webgl-test-utils.js"></script>
+    <script src="../../../resources/js-test-pre.js"></script>
+    <script src="resources/webgl-test.js"> </script>
+    <script src="resources/webgl-test-utils.js"></script>
 </head>
 <body>
 <canvas id="example" width="2" height="2" style="width: 40px; height: 40px;"></canvas>
@@ -48,6 +19,9 @@ function init()
       "Tests that only Uniform1i and Uniform1iv can be used to set" +
       "sampler uniforms.");
 
+ if (window.internals)
+    window.internals.settings.setWebGLErrorsToConsoleEnabled(false);
+
   var canvas2d = document.getElementById("canvas2d");
 
   var wtu = WebGLTestUtils;
@@ -55,7 +29,7 @@ function init()
   var program = wtu.setupTexturedQuad(gl);
 
   var textureLoc = gl.getUniformLocation(program, "tex");
-  var testInt32Array = new Int32Array(4);
+  var testInt32Array = new Int32Array(1);
 
   gl.uniform1i(textureLoc, 1);
   glErrorShouldBe(gl, gl.NO_ERROR,
@@ -108,7 +82,7 @@ function init()
 init();
 var successfullyParsed = true;
 </script>
-<script src="../../resources/js-test-post.js"></script>
+<script src="../../../resources/js-test-post.js"></script>
 </body>
 </html>
 
index e974243..1f0b6f5 100644 (file)
@@ -564,6 +564,14 @@ function shouldBeGreaterThanOrEqual(_a, _b) {
         testPassed(_a + " is >= " + _b);
 }
 
+function expectTrue(v, msg) {
+  if (v) {
+    testPassed(msg);
+  } else {
+    testFailed(msg);
+  }
+}
+
 function shouldNotThrow(_a) {
     try {
         eval(_a);