diff options
author | Carl Worth <cworth@cworth.org> | 2014-08-05 14:39:56 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2014-08-11 13:54:24 -0700 |
commit | 816d7b7bfc19de2107f049f44d5b895fc03aecfd (patch) | |
tree | c21b55f37688d8273b0fd5cf12212a6b2382fdee | |
parent | e1afd214eeb99056953be0116763b81f867d1069 (diff) |
glsl/glcpp: Add testing to ensure illegal characters generate errors
This mostly-exhaustive test ensures that the illegal-character error
implemented in the previous commit is actually generated for most every
illegal character.
-rw-r--r-- | src/glsl/glcpp/tests/141-illegal-characters.c | 99 | ||||
-rw-r--r-- | src/glsl/glcpp/tests/141-illegal-characters.c.expected | 165 |
2 files changed, 264 insertions, 0 deletions
diff --git a/src/glsl/glcpp/tests/141-illegal-characters.c b/src/glsl/glcpp/tests/141-illegal-characters.c new file mode 100644 index 0000000000..0ea227e762 --- /dev/null +++ b/src/glsl/glcpp/tests/141-illegal-characters.c @@ -0,0 +1,99 @@ +/* After subtracting out the legal characters (see test + * 140-legal-characters.c), any other possible character must be + * illegal. That leaves: + * + * Illegal in all contexts: + * + * 0x00 - 0x08 (^@ - ^H) + * 0x0E - 0x1F (^N - ^Z, ^[, ^\, ^], ^^, ^_) + * 0x22 (") + * 0x24 ($) + * 0x27 (') + * 0x40 (@) + * 0x60 (`) + * 0x7F (DEL or ^?) + * 0x80 - 0xFF (non-ASCII) + * + * Illegal in some contexts: + * + * 0x23 (#), not introducting a directive, not as part of past operator + * 0x5C (\), not as last character of a line + * + * This file tests at least one occurence of most of the above + * characters. The exceptions are: + * + * 0x00: This character would be tricky to test. The calling + * convention of bison to the lexer is such that a return value + * of 0 indicates end-of-file. So without any direct support + * for the 0x00 character, it is being interpreted as + * end-of-file. This semms legitimate enough, (since the 0x00 + * character is illegal). + * + * 0x80 -0xFF: Only 25% of these characters are represented here. + */ + + + + + + + + + + + + + + + + + + + + + + + + + + +" +$ +' +@ +` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.#. +.\. diff --git a/src/glsl/glcpp/tests/141-illegal-characters.c.expected b/src/glsl/glcpp/tests/141-illegal-characters.c.expected new file mode 100644 index 0000000000..706cde48ba --- /dev/null +++ b/src/glsl/glcpp/tests/141-illegal-characters.c.expected @@ -0,0 +1,165 @@ +0:34(1): preprocessor error: Illegal character '' +0:35(1): preprocessor error: Illegal character '' +0:36(1): preprocessor error: Illegal character '' +0:37(1): preprocessor error: Illegal character '' +0:38(1): preprocessor error: Illegal character '' +0:39(1): preprocessor error: Illegal character '' +0:40(1): preprocessor error: Illegal character '' +0:41(1): preprocessor error: Illegal character '' +0:42(1): preprocessor error: Illegal character '' +0:43(1): preprocessor error: Illegal character '' +0:44(1): preprocessor error: Illegal character '' +0:45(1): preprocessor error: Illegal character '' +0:46(1): preprocessor error: Illegal character '' +0:47(1): preprocessor error: Illegal character '' +0:48(1): preprocessor error: Illegal character '' +0:49(1): preprocessor error: Illegal character '' +0:50(1): preprocessor error: Illegal character '' +0:51(1): preprocessor error: Illegal character '' +0:52(1): preprocessor error: Illegal character '' +0:53(1): preprocessor error: Illegal character '' +0:54(1): preprocessor error: Illegal character '' +0:55(1): preprocessor error: Illegal character '' +0:56(1): preprocessor error: Illegal character '' +0:57(1): preprocessor error: Illegal character '' +0:58(1): preprocessor error: Illegal character '' +0:59(1): preprocessor error: Illegal character '' +0:60(1): preprocessor error: Illegal character '"' +0:61(1): preprocessor error: Illegal character '$' +0:62(1): preprocessor error: Illegal character ''' +0:63(1): preprocessor error: Illegal character '@' +0:64(1): preprocessor error: Illegal character '`' +0:65(1): preprocessor error: Illegal character '' +0:66(1): preprocessor error: Illegal character '' +0:67(1): preprocessor error: Illegal character '' +0:68(1): preprocessor error: Illegal character '' +0:69(1): preprocessor error: Illegal character '' +0:70(1): preprocessor error: Illegal character '' +0:71(1): preprocessor error: Illegal character '' +0:72(1): preprocessor error: Illegal character '' +0:73(1): preprocessor error: Illegal character '' +0:74(1): preprocessor error: Illegal character '' +0:75(1): preprocessor error: Illegal character '' +0:76(1): preprocessor error: Illegal character '' +0:77(1): preprocessor error: Illegal character '' +0:78(1): preprocessor error: Illegal character '' +0:79(1): preprocessor error: Illegal character '' +0:80(1): preprocessor error: Illegal character '' +0:81(1): preprocessor error: Illegal character '' +0:82(1): preprocessor error: Illegal character '' +0:83(1): preprocessor error: Illegal character '' +0:84(1): preprocessor error: Illegal character '' +0:85(1): preprocessor error: Illegal character '' +0:86(1): preprocessor error: Illegal character '' +0:87(1): preprocessor error: Illegal character '' +0:88(1): preprocessor error: Illegal character '' +0:89(1): preprocessor error: Illegal character '' +0:90(1): preprocessor error: Illegal character '' +0:91(1): preprocessor error: Illegal character '' +0:92(1): preprocessor error: Illegal character '' +0:93(1): preprocessor error: Illegal character '' +0:94(1): preprocessor error: Illegal character '' +0:95(1): preprocessor error: Illegal character '' +0:96(1): preprocessor error: Illegal character '' +0:97(1): preprocessor error: Illegal character '' +0:98(2): preprocessor error: Illegal character '#' +0:99(2): preprocessor error: Illegal character '\' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +.. +.. |