summaryrefslogtreecommitdiff
path: root/src/glsl/glcpp/tests
AgeCommit message (Collapse)Author
2010-07-20glcpp: Avoid accidental token pasting in preprocessed result.Carl Worth
Consider this test case: #define EMPTY int foo = 1+EMPTY+4; The expression should compile as the sequence of tokens 1, PLUS, UNARY_POSITIVE, 4. But glcpp has been failing for this case since it results in the string "1++4" which a compiler correctly sees as a syntax error, (1, POST_INCREMENT, 4). We fix this by changing any macro with an empty definition to result in a single SPACE token rather than nothing. This then gives "1+ +4" which compiles correctly. This commit does touch up the two existing test cases which already have empty macros, (to add the space to the expected result). It also adds a new test case to exercise the above scenario.
2010-07-20glcpp: Fix support for nested #ifdef and nested #ifndefCarl Worth
Previously, if the outer #ifdef/#ifndef evaluated to false, the inner directive would not be parsed correctly, (the identifier as the subject of the #ifdef/#ifndef would inadvertently be skipped along with the other content correctly being skipped). We fix this by setting the lexing_if state in each case here. We also add a new test to the test suite to ensure that this case is tested.
2010-07-20glcpp: Support #if(expression) with no intervening space.Carl Worth
And add a test case to ensure that this works.
2010-07-20glcpp: Make test suite test for valgrind cleanliness.Carl Worth
As it turns out, 4 of our current tests are not valgrind clean, (use after free errors or so), so this will be helpful for investigating and fixing those.
2010-07-20glcpp: Make test suite report final count of passed/total tests.Carl Worth
And report PASS or FAIL for each test along the way as well.
2010-06-24glsl2: Move the compiler to the subdirectory it will live in in Mesa.Eric Anholt