glcpp: Add testing for no space between macro name and replacement list
authorCarl Worth <cworth@cworth.org>
Tue, 5 Aug 2014 23:33:02 +0000 (16:33 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 4 Jan 2017 22:40:48 +0000 (14:40 -0800)
commit6c8762400d0d7b18250d8e1663d8812ca0811023
treed0850e1593327bb735c12b37fddbafd613625ce3
parent36b5f1d200bf1f24f562fd3c441c4322f2ff5029
glcpp: Add testing for no space between macro name and replacement list

GCC's preprocessor accepts a macro definition where there is no space between
the macro's identifier name and the replacementlist. (GCC does emit a "missing
space" warning that we don't, but that's fine.)

This is an exhaustive test that verifies that all legal GLSL characters that
could possibly be interpreted as separating the macro name from the
replacement list are interpreted as such. So the testing here includes all
valid GLSL symbols except for:

  * Characters that can be part of an identifier (a-z, A-Z, 0-9, _)

  * Backslash, (allowed only as line continuation)

  * Hash, (allowed only to introduce pre-processor directive, or as part of a
           paste operator in a replacement list---but not as first token of
           replacement list)

  * Space characters (since the point of the testing is to have missing space)

  * Left parenthesis (which would indicate a function-like macro)

v2 (Ken): Move to src/compiler, renumber tests.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/compiler/glsl/glcpp/tests/147-define-macro-no-space.c [new file with mode: 0644]
src/compiler/glsl/glcpp/tests/147-define-macro-no-space.c.expected [new file with mode: 0644]