Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/shaderc
Path: blob/main/glslc/test/file_extensions.py
1560 views
1
# Copyright 2015 The Shaderc Authors. All rights reserved.
2
#
3
# Licensed under the Apache License, Version 2.0 (the "License");
4
# you may not use this file except in compliance with the License.
5
# You may obtain a copy of the License at
6
#
7
# http://www.apache.org/licenses/LICENSE-2.0
8
#
9
# Unless required by applicable law or agreed to in writing, software
10
# distributed under the License is distributed on an "AS IS" BASIS,
11
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
# See the License for the specific language governing permissions and
13
# limitations under the License.
14
15
import expect
16
from glslc_test_framework import GlslCTest, inside_glslc_testsuite
17
from placeholder import FileShader
18
19
20
def empty_es_310_shader():
21
return '#version 310 es\n void main() {}\n'
22
23
24
@inside_glslc_testsuite('FileExtension')
25
class VerifyVertExtension(expect.ValidObjectFile):
26
"""Tests glslc accepts vertex shader extension (.vert)."""
27
28
shader = FileShader(empty_es_310_shader(), '.vert')
29
glslc_args = ['-c', shader]
30
31
32
@inside_glslc_testsuite('FileExtension')
33
class VerifyFragExtension(expect.ValidObjectFile):
34
"""Tests glslc accepts fragment shader extension (.frag)."""
35
36
shader = FileShader(empty_es_310_shader(), '.frag')
37
glslc_args = ['-c', shader]
38
39
40
@inside_glslc_testsuite('FileExtension')
41
class VerifyTescExtension(expect.ValidObjectFile):
42
"""Tests glslc accepts tessellation control shader extension (.tesc)."""
43
44
shader = FileShader(
45
'#version 440 core\n layout(vertices = 3) out;\n void main() {}',
46
'.tesc')
47
glslc_args = ['-c', shader]
48
49
50
@inside_glslc_testsuite('FileExtension')
51
class VerifyTeseExtension(expect.ValidObjectFile):
52
"""Tests glslc accepts tessellation evaluation shader extension (.tese)."""
53
54
shader = FileShader(
55
'#version 440 core\n layout(triangles) in;\n void main() {}', '.tese')
56
glslc_args = ['-c', shader]
57
58
59
@inside_glslc_testsuite('FileExtension')
60
class VerifyGeomExtension(expect.ValidObjectFile):
61
"""Tests glslc accepts geomtry shader extension (.geom)."""
62
63
shader = FileShader(
64
'#version 150 core\n layout (triangles) in;\n'
65
'layout (line_strip, max_vertices = 4) out;\n void main() {}',
66
'.geom')
67
glslc_args = ['-c', shader]
68
69
70
@inside_glslc_testsuite('FileExtension')
71
class VerifyCompExtension(expect.ValidObjectFile):
72
"""Tests glslc accepts compute shader extension (.comp)."""
73
74
shader = FileShader(empty_es_310_shader(), '.comp')
75
glslc_args = ['-c', shader]
76
77
78
@inside_glslc_testsuite('FileExtension')
79
class InvalidExtension(expect.ErrorMessage):
80
"""Tests the error message if a file extension cannot be determined."""
81
82
shader = FileShader('#version 150\n', '.fraga')
83
glslc_args = ['-c', shader]
84
expected_error = [
85
"glslc: error: '", shader,
86
"': file not recognized: File format not recognized\n"]
87
88