X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=tests%2Fglsl%2Fglslcompiler.cpp;h=acca61d36a217e7bec5dcc572576209a5bfb3244;hb=1cdd7023ea6fa85bcd28176c504d0feb98b61cae;hp=70ccf3b200f733504d89583396e1fb9594c3d9d8;hpb=063365a2e3ee9bd8d520e7115e8c0319e3736906;p=libs%2Fgl.git diff --git a/tests/glsl/glslcompiler.cpp b/tests/glsl/glslcompiler.cpp index 70ccf3b2..acca61d3 100644 --- a/tests/glsl/glslcompiler.cpp +++ b/tests/glsl/glslcompiler.cpp @@ -99,9 +99,9 @@ const GlslCompilerTest::TestCase &GlslCompilerTest::load_test_case(const string void GlslCompilerTest::run_test_case(const TestCase *test_case) { GL::SL::Compiler compiler(GL::SL::Features::all()); - compiler.set_source(test_case->source, ""); try { + compiler.set_source(test_case->source, ""); compiler.compile(GL::SL::Compiler::PROGRAM); } catch(const GL::SL::invalid_shader_source &exc) @@ -116,6 +116,9 @@ void GlslCompilerTest::run_test_case(const TestCase *test_case) throw; } + if(!test_case->expected_error.empty()) + fail("Error expected but none thrown"); + auto stages = compiler.get_stages(); for(auto s: stages) { @@ -197,6 +200,11 @@ void GlslCompilerTest::verify_error(const string &output, const string &expected ++i; while(j!=expected.end() && isspace(*j)) ++j; + + if(i!=output.end()) + fail(format("Extra error line: %s", extract_line(output, i))); + if(j!=expected.end()) + fail(format("Missing error line: %s", extract_line(expected, j))); } string GlslCompilerTest::extract_line(const string &text, const string::const_iterator &iter)