dEQP-GLES3.functional.shaders.arrays.compare.equal_highp_mat3_highp_mat3_fragment
dEQP-GLES3.functional.shaders.arrays.compare.equal_highp_mat4_highp_mat4_vertex
dEQP-GLES3.functional.shaders.arrays.compare.equal_highp_mat4_highp_mat4_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DArrayShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DArrayShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DArrayShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DArrayShadow_fragment
dEQP-GLES3.functional.shaders.switch.default_only_static_vertex
dEQP-GLES3.functional.shaders.switch.default_only_static_fragment
dEQP-GLES3.functional.shaders.switch.default_only_uniform_vertex
dEQP-GLES3.functional.shaders.keywords.reserved_keywords.namespace_fragment
dEQP-GLES3.functional.shaders.keywords.reserved_keywords.using_vertex
dEQP-GLES3.functional.shaders.keywords.reserved_keywords.using_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DArrayShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DArrayShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DArrayShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DArrayShadow_fragment
dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.gl_begin_vertex
dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.gl_begin_fragment
dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.digit_vertex
end
end # reserved_keywords
+group allowed_keywords "Usage of allowed keywords as identifiers."
+
+ case image1DShadow
+
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float image1DShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case image2DShadow
+
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float image2DShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case image1DArrayShadow
+
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float image1DArrayShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+ case image2DArrayShadow
+
+ values {}
+ version 300 es
+
+ both ""
+ #version 300 es
+ precision mediump float;
+ ${DECLARATIONS}
+
+ void main()
+ {
+ ${SETUP}
+ float image2DArrayShadow = 1.0;
+ ${OUTPUT}
+ }
+ ""
+ end
+
+end # allowed_keywords
group invalid_identifiers "Usage of invalid identifiers."
case gl_begin
dEQP-GLES3.functional.shaders.keywords.reserved_keywords.namespace_fragment
dEQP-GLES3.functional.shaders.keywords.reserved_keywords.using_vertex
dEQP-GLES3.functional.shaders.keywords.reserved_keywords.using_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DArrayShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DArrayShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DArrayShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DArrayShadow_fragment
dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.gl_begin_vertex
dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.gl_begin_fragment
dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.digit_vertex
dEQP-GLES3.functional.shaders.keywords.reserved_keywords.namespace_fragment
dEQP-GLES3.functional.shaders.keywords.reserved_keywords.using_vertex
dEQP-GLES3.functional.shaders.keywords.reserved_keywords.using_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DArrayShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DArrayShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DArrayShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DArrayShadow_fragment
dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.gl_begin_vertex
dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.gl_begin_fragment
dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.digit_vertex
dEQP-GLES3.functional.shaders.keywords.reserved_keywords.namespace_fragment
dEQP-GLES3.functional.shaders.keywords.reserved_keywords.using_vertex
dEQP-GLES3.functional.shaders.keywords.reserved_keywords.using_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DArrayShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image1DArrayShadow_fragment
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DArrayShadow_vertex
+dEQP-GLES3.functional.shaders.keywords.allowed_keywords.image2DArrayShadow_fragment
dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.gl_begin_vertex
dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.gl_begin_fragment
dEQP-GLES3.functional.shaders.keywords.invalid_identifiers.digit_vertex
identifierCaseTemplate = """
case ${{NAME}}
- expect compile_fail
+ ${{EXPECT}}
values {}
version 300 es
# Classes
class IdentifierCase(ShaderCase):
- def __init__(self, name, identifier):
+ def __init__(self, name, identifier, expectToCompile = True):
self.name = name
- self.identifier = identifier
+ self.identifier = identifier
+ self.expect = '' if expectToCompile else 'expect compile_fail'
def __str__(self):
params = { "NAME" : self.name,
- "IDENTIFIER" : self.identifier }
+ "IDENTIFIER" : self.identifier,
+ "EXPECT" : self.expect }
return fillTemplate(identifierCaseTemplate, params)
# Declarations
"usampler2DMSArray", "sizeof", "cast", "namespace", "using"
]
+ALLOWED_KEYWORDS = [
+ "image1DShadow", "image2DShadow", "image1DArrayShadow", "image2DArrayShadow"
+]
+
INVALID_IDENTIFIERS = [
("gl_begin", "gl_Invalid"),
("digit", "0123"),
keywords = []
reservedKeywords = []
+allowedKeywords = []
invalidIdentifiers = []
for keyword in KEYWORDS:
- keywords.append(IdentifierCase(keyword, keyword)) # Keywords
+ keywords.append(IdentifierCase(keyword, keyword, False)) # Keywords
for keyword in RESERVED_KEYWORDS:
- reservedKeywords.append(IdentifierCase(keyword, keyword)) # Reserved keywords
+ reservedKeywords.append(IdentifierCase(keyword, keyword, False)) # Reserved keywords
+
+for keyword in ALLOWED_KEYWORDS:
+ allowedKeywords.append(IdentifierCase(keyword, keyword, True)) # Allowed keywords
for (name, identifier) in INVALID_IDENTIFIERS:
- invalidIdentifiers.append(IdentifierCase(name, identifier)) # Invalid identifiers
+ invalidIdentifiers.append(IdentifierCase(name, identifier, False)) # Invalid identifiers
keywordCases = [
CaseGroup("keywords", "Usage of keywords as identifiers.", keywords),
CaseGroup("reserved_keywords", "Usage of reserved keywords as identifiers.", reservedKeywords),
+ CaseGroup("allowed_keywords", "Usage of allowed keywords as identifiers.", allowedKeywords),
CaseGroup("invalid_identifiers", "Usage of invalid identifiers.", invalidIdentifiers)
]