title: glGetShaderSource retruns 'true' with length of 3
body: <p>I'm trying to write a sample workflow using es2 in a C++ unit test.
  when doing</p>
  <pre><code>glCompileShader(vertexShader);
  </code></pre>
  <p>I'm getting 0 for <code>GL_COMPILE_STATUS</code> flag</p>
  <pre><code>GLint vertexShaderRes;
  glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &amp;vertexShaderRes);
  EXPECT_NE(GL_FALSE, vResult) &lt;&lt; &quot;glGetShaderiv result is 0&quot;;
  </code></pre>
  <p>Then I tried to find if I made any error in shader source part</p>
  <pre><code>GLint vertSrcLen;
  glGetShaderiv(vertexShader, GL_SHADER_SOURCE_LENGTH, &amp;vertSrcLen);
  EXPECT_NE(0, vertSrcLen) &lt;&lt; &quot;shader source len error&quot;;
  GLchar vertCode[vertSrcLen];
  glGetShaderSource(vertexShader, vertSrcLen, NULL, vertCode);
  EXPECT_TRUE(false) &lt;&lt; &quot;==== vertex shader source ====&quot;&lt;&lt; std::endl
                     &lt;&lt; &quot;len: &quot;&lt;&lt; vertSrcLen             &lt;&lt; std::endl
                     &lt;&lt; vertCode                        &lt;&lt; std::endl
                     &lt;&lt; &quot;==============================&quot;;
  </code></pre>
  <p>The output above is</p>
  <pre><code>Value of: false
    Actual: false
  Expected: true
  ==== vertex shader source ====
  len: 3
  true
  ==============================
  </code></pre>
  <p>My shader source are defined as below:</p>
  <pre><code>std::string vertexSource = &quot;/path/to/vertex.glsl&quot;
  std::ifstream vertexStream(vertexSource, std::ios::in);
  ASSERT_EQ(true, vertexStream.is_open()) &lt;&lt; &quot;unable to open vertex shader file&quot;;
  std::stringstream vertStr;
  vertStr &lt;&lt; vertexStream.rdbuf();
  auto vertStrPtr = (const GLchar*)(vertStr.str()).c_str();
  glShaderSource(vertexShader, 1, &amp;vertStrPtr, NULL);
  </code></pre>
  <p>And the original of this all is I'm getting <code>GL_INVALID_OPERATION</code> when calling <code>glGetAttribLocation();</code> and here seems something wrong with my shader part. Any idea what's wrong with my code? Any help would be appreciated</p>