Before:
  runtime ale_linters/glsl/glslang.vim

Execute(The glsl glslang handler should parse lines correctly):
  AssertEqual
  \ [
  \   {
  \     'lnum': 4,
  \     'col': 0,
  \     'type': 'E',
  \     'text': '''gl_ModelViewProjectionMatrix'' : undeclared identifier',
  \   },
  \   {
  \     'lnum': 121,
  \     'col': 0,
  \     'type': 'W',
  \     'text': '''switch'' : last case/default label not followed by statements',
  \   },
  \ ],
  \ ale_linters#glsl#glslang#Handle(bufnr(''), [
  \ 'ERROR: 0:4: ''gl_ModelViewProjectionMatrix'' : undeclared identifier',
  \ 'WARNING: 0:121: ''switch'' : last case/default label not followed by statements',
  \ 'ERROR: 2 compilation errors.  No code generated.',
  \ ])

Execute(The glsl glslang handler should parse lines with options -V or -G correctly):
  AssertEqual
  \ [
  \   {
  \     'lnum': 7,
  \     'col': 0,
  \     'type': 'E',
  \     'text': '''non-opaque uniforms outside a block'' : not allowed when using GLSL for Vulkan',
  \   },
  \   {
  \     'lnum': 14,
  \     'col': 0,
  \     'type': 'W',
  \     'text': '''__shininess'' : identifiers containing consecutive underscores ("__") are reserved',
  \   },
  \ ],
  \ ale_linters#glsl#glslang#Handle(bufnr(''), [
  \ 'shader.vert',
  \ 'ERROR: shader.vert:7: ''non-opaque uniforms outside a block'' : not allowed when using GLSL for Vulkan',
  \ 'WARNING: shader.vert:14: ''__shininess'' : identifiers containing consecutive underscores ("__") are reserved',
  \ 'ERROR: 1 compilation errors.  No code generated.',
  \ 'SPIR-V is not generated for failed compile or link',
  \ ])
