mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
glcpp: Exhaustively test all legal characters in GLSL
Here, each legal character (as defined by GLSL Language Specification version 4.30.6, section 3.1) appears at least once in the input file. Obviously, characters with special meaning (like '#' and '\') aren't treated exhaustively with respect to all their possible uses. We have many other tests for that. Here, we're simply ensuring that the test suite sees every legal character at least once. v2 (by Ken): Fix expectations, move to src/compiler, renumber tests. Carl's .expected: Updated .expected: .. .. . . . . . . . . . . . . . . . . . .. . . . . . (For some reason, the original test expected ".." to produce two lines. glcpp, cpp, and mcpp all follow my updated behavior, so I believe it to be correct.) Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
16b480547f
commit
5363518705
2 changed files with 154 additions and 0 deletions
77
src/compiler/glsl/glcpp/tests/148-legal-characters.c
Normal file
77
src/compiler/glsl/glcpp/tests/148-legal-characters.c
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
/* Legal characters in GLSL are:
|
||||
*
|
||||
* Identifier characters:
|
||||
*
|
||||
* Letters a-z
|
||||
* Letters A-Z
|
||||
* Underscore
|
||||
* Numbers 0-9
|
||||
*
|
||||
* Punctuation:
|
||||
*
|
||||
* Period, plus, dash, slash, asterisk, percent, angled brackets,
|
||||
* square brackets, parentheses, braces, caret, vertical bar,
|
||||
* ampersand, tilde, equals, exclamation point, colon, semicolon,
|
||||
* comma, and question mark
|
||||
*
|
||||
* Special:
|
||||
*
|
||||
* Number sign (as used in preprocessor)
|
||||
*
|
||||
* Backslash just before newline as line continuation
|
||||
*
|
||||
* White space:
|
||||
*
|
||||
* Space, horizontal tab, vertical tab, form feed, carriage-return,
|
||||
* and line-feed.
|
||||
*
|
||||
* [GLSL Language Specficiation 4.30.6, section 3.1]
|
||||
*
|
||||
* In this file, we test each of these in turn as follows:
|
||||
*
|
||||
* Identifier characters: All pass through unchanged
|
||||
* Punctuation: All pass through unchanged
|
||||
* Special: Empty directive replaced with blank line
|
||||
* Line continuation merges two lines, then a blank line
|
||||
* Whitespace: 4 horizontal space characters each replaced with space
|
||||
* 2 newline characters each replaced with a newline
|
||||
*
|
||||
*/
|
||||
abcdefghijklmnopqrstuvwxyz
|
||||
ABCDEFGHIJKMLNOPQRSTUVWXYZ
|
||||
_
|
||||
0123456789
|
||||
.
|
||||
+
|
||||
-
|
||||
/
|
||||
*
|
||||
%
|
||||
<
|
||||
>
|
||||
[
|
||||
]
|
||||
(
|
||||
)
|
||||
{
|
||||
}
|
||||
^
|
||||
|
|
||||
&
|
||||
~
|
||||
=
|
||||
!
|
||||
:
|
||||
;
|
||||
,
|
||||
?
|
||||
#
|
||||
.\
|
||||
.
|
||||
. .
|
||||
. .
|
||||
..
|
||||
..
|
||||
..
|
||||
.
|
||||
.
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
abcdefghijklmnopqrstuvwxyz
|
||||
ABCDEFGHIJKMLNOPQRSTUVWXYZ
|
||||
_
|
||||
0123456789
|
||||
.
|
||||
+
|
||||
-
|
||||
/
|
||||
*
|
||||
%
|
||||
<
|
||||
>
|
||||
[
|
||||
]
|
||||
(
|
||||
)
|
||||
{
|
||||
}
|
||||
^
|
||||
|
|
||||
&
|
||||
~
|
||||
=
|
||||
!
|
||||
:
|
||||
;
|
||||
,
|
||||
?
|
||||
|
||||
..
|
||||
|
||||
. .
|
||||
. .
|
||||
. .
|
||||
. .
|
||||
..
|
||||
.
|
||||
.
|
||||
Loading…
Add table
Reference in a new issue