Test compilation of shaders after being attached to a program, with and without syntax errors.


== Running test suite: Canvas.getShaderSource
-- Running test case: Canvas.requestShaderSource.vertexShader

    void main(void) {
        gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
    }


-- Running test case: Canvas.requestShaderSource.fragmentShader

    precision mediump float;

    void main(void) {
        gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
    }


-- Running test case: Canvas.requestShaderSource.invalidProgramId
PASS: Should produce an error.
Error: No shader program for given identifier.

-- Running test case: Canvas.requestShaderSource.invalidShaderType
PASS: Should produce an error.
Error: No shader for given type.

