Path: blob/main/glslc/test/file_extensions.py
1560 views
# Copyright 2015 The Shaderc Authors. All rights reserved.1#2# Licensed under the Apache License, Version 2.0 (the "License");3# you may not use this file except in compliance with the License.4# You may obtain a copy of the License at5#6# http://www.apache.org/licenses/LICENSE-2.07#8# Unless required by applicable law or agreed to in writing, software9# distributed under the License is distributed on an "AS IS" BASIS,10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.11# See the License for the specific language governing permissions and12# limitations under the License.1314import expect15from glslc_test_framework import GlslCTest, inside_glslc_testsuite16from placeholder import FileShader171819def empty_es_310_shader():20return '#version 310 es\n void main() {}\n'212223@inside_glslc_testsuite('FileExtension')24class VerifyVertExtension(expect.ValidObjectFile):25"""Tests glslc accepts vertex shader extension (.vert)."""2627shader = FileShader(empty_es_310_shader(), '.vert')28glslc_args = ['-c', shader]293031@inside_glslc_testsuite('FileExtension')32class VerifyFragExtension(expect.ValidObjectFile):33"""Tests glslc accepts fragment shader extension (.frag)."""3435shader = FileShader(empty_es_310_shader(), '.frag')36glslc_args = ['-c', shader]373839@inside_glslc_testsuite('FileExtension')40class VerifyTescExtension(expect.ValidObjectFile):41"""Tests glslc accepts tessellation control shader extension (.tesc)."""4243shader = FileShader(44'#version 440 core\n layout(vertices = 3) out;\n void main() {}',45'.tesc')46glslc_args = ['-c', shader]474849@inside_glslc_testsuite('FileExtension')50class VerifyTeseExtension(expect.ValidObjectFile):51"""Tests glslc accepts tessellation evaluation shader extension (.tese)."""5253shader = FileShader(54'#version 440 core\n layout(triangles) in;\n void main() {}', '.tese')55glslc_args = ['-c', shader]565758@inside_glslc_testsuite('FileExtension')59class VerifyGeomExtension(expect.ValidObjectFile):60"""Tests glslc accepts geomtry shader extension (.geom)."""6162shader = FileShader(63'#version 150 core\n layout (triangles) in;\n'64'layout (line_strip, max_vertices = 4) out;\n void main() {}',65'.geom')66glslc_args = ['-c', shader]676869@inside_glslc_testsuite('FileExtension')70class VerifyCompExtension(expect.ValidObjectFile):71"""Tests glslc accepts compute shader extension (.comp)."""7273shader = FileShader(empty_es_310_shader(), '.comp')74glslc_args = ['-c', shader]757677@inside_glslc_testsuite('FileExtension')78class InvalidExtension(expect.ErrorMessage):79"""Tests the error message if a file extension cannot be determined."""8081shader = FileShader('#version 150\n', '.fraga')82glslc_args = ['-c', shader]83expected_error = [84"glslc: error: '", shader,85"': file not recognized: File format not recognized\n"]868788