Bug 958491 - Test extension-only param. - r=kamidphish
authorJeff Gilbert <jgilbert@mozilla.com>
Wed, 05 Mar 2014 14:16:01 -0800
changeset 172141 d34996777f58f69e80746b341694e1b2abaa17c3
parent 172140 d465a1a2f806f9b19bcc48e3d6cb66e0db7a4ed2
child 172142 e43df9cf4e7deaf917b0635ccca0c35a23250edd
push id26351
push usercbook@mozilla.com
push dateThu, 06 Mar 2014 12:13:01 +0000
treeherdermozilla-central@0f81cbeae0d4 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerskamidphish
bugs958491
milestone30.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 958491 - Test extension-only param. - r=kamidphish
content/canvas/test/webgl/non-conf-tests/mochitest.ini
content/canvas/test/webgl/non-conf-tests/test_fb_param.html
--- a/content/canvas/test/webgl/non-conf-tests/mochitest.ini
+++ b/content/canvas/test/webgl/non-conf-tests/mochitest.ini
@@ -1,14 +1,15 @@
 [DEFAULT]
 support-files =
   driver-info.js
   webgl-util.js
 
 [test_depth_readpixels.html]
+[test_fb_param.html]
 [test_highp_fs.html]
 [test_no_arr_points.html]
 [test_privileged_exts.html]
 [test_webgl_available.html]
 [test_webgl_conformance.html]
 [test_webgl_request_context.html]
 [test_webgl_request_mismatch.html]
 [test_webgl2_not_exposed.html]
new file mode 100644
--- /dev/null
+++ b/content/canvas/test/webgl/non-conf-tests/test_fb_param.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML>
+<title>WebGL test: bug 958491</title>
+<script src="/MochiKit/MochiKit.js"></script>
+<script src="/tests/SimpleTest/SimpleTest.js"></script>
+<link rel="stylesheet" href="/tests/SimpleTest/test.css">
+<script src="driver-info.js"></script>
+<script src="webgl-util.js"></script>
+<body>
+<canvas id="c"></canvas>
+<script>
+
+// Give ourselves a scope to return early from:
+(function() {
+  var gl = WebGLUtil.getWebGL('c');
+  if (!gl) {
+    todo(false, 'WebGL is unavailable.');
+    return;
+  }
+
+  // Catch actual WebGLUtil errors, not GL errors.
+  function errorFunc(str) {
+    ok(false, 'Error: ' + str);
+  }
+  WebGLUtil.setErrorFunc(errorFunc);
+
+  function checkGLError(func, info, reference) {
+    var error = gl.getError();
+    var prefix = info ? ('[' + info + '] ') : '';
+    var text = 'gl.getError should be 0x' + reference.toString(16) +
+               ', was 0x' + error.toString(16) + '.';
+    func(error == reference, prefix + text);
+  }
+
+  // Begin test:
+  var rb = gl.createRenderbuffer();
+  gl.bindRenderbuffer(gl.RENDERBUFFER, rb);
+  gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 4, 4);
+
+  var fb = gl.createFramebuffer();
+  gl.bindFramebuffer(gl.FRAMEBUFFER, fb);
+  gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0,
+                             gl.RENDERBUFFER, rb);
+
+  checkGLError(ok, 'before bad param query', 0);
+
+  var GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210;
+  var result = gl.getFramebufferAttachmentParameter(gl.FRAMEBUFFER,
+                                                    gl.COLOR_ATTACHMENT0,
+                                                    GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING);
+
+  checkGLError(ok, 'after bad param query', gl.INVALID_ENUM);
+})();
+
+</script>
+