t) {
      fnTexOrSubImage(gl.RGBA, gl.UNSIGNED_BYTE, testView, viewOffset);
    };

    if (!probeWithBadOffset(fnProbe, funcName))
      return;

    for (var i = 0; i <= testView.length+1; i++) {
      debug("offset=" + i);

      fnTexOrSubImage(gl.RGBA, gl.UNSIGNED_BYTE, testView, i);

      var effectiveViewLen = testView.length - i;

      if (effectiveViewLen >= 4) {
        wtu.glErrorShouldBe(gl, gl.NO_ERROR);

        gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, readPixelView);
        wt