1fd4e5da5Sopenharmony_ci# Copyright (c) 2018 Google LLC 2fd4e5da5Sopenharmony_ci# 3fd4e5da5Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 4fd4e5da5Sopenharmony_ci# you may not use this file except in compliance with the License. 5fd4e5da5Sopenharmony_ci# You may obtain a copy of the License at 6fd4e5da5Sopenharmony_ci# 7fd4e5da5Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 8fd4e5da5Sopenharmony_ci# 9fd4e5da5Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 10fd4e5da5Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 11fd4e5da5Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fd4e5da5Sopenharmony_ci# See the License for the specific language governing permissions and 13fd4e5da5Sopenharmony_ci# limitations under the License. 14fd4e5da5Sopenharmony_ci 15fd4e5da5Sopenharmony_ciimport placeholder 16fd4e5da5Sopenharmony_ciimport expect 17fd4e5da5Sopenharmony_ciimport re 18fd4e5da5Sopenharmony_ci 19fd4e5da5Sopenharmony_cifrom spirv_test_framework import inside_spirv_testsuite 20fd4e5da5Sopenharmony_ci 21fd4e5da5Sopenharmony_ci 22fd4e5da5Sopenharmony_cidef empty_main_assembly(): 23fd4e5da5Sopenharmony_ci return """ 24fd4e5da5Sopenharmony_ci OpCapability Shader 25fd4e5da5Sopenharmony_ci OpMemoryModel Logical GLSL450 26fd4e5da5Sopenharmony_ci OpEntryPoint Vertex %4 "main" 27fd4e5da5Sopenharmony_ci OpName %4 "main" 28fd4e5da5Sopenharmony_ci %2 = OpTypeVoid 29fd4e5da5Sopenharmony_ci %3 = OpTypeFunction %2 30fd4e5da5Sopenharmony_ci %4 = OpFunction %2 None %3 31fd4e5da5Sopenharmony_ci %5 = OpLabel 32fd4e5da5Sopenharmony_ci OpReturn 33fd4e5da5Sopenharmony_ci OpFunctionEnd""" 34fd4e5da5Sopenharmony_ci 35fd4e5da5Sopenharmony_ci 36fd4e5da5Sopenharmony_ci@inside_spirv_testsuite('SpirvOptConfigFile') 37fd4e5da5Sopenharmony_ciclass TestOconfigEmpty(expect.SuccessfulReturn): 38fd4e5da5Sopenharmony_ci """Tests empty config files are accepted.""" 39fd4e5da5Sopenharmony_ci 40fd4e5da5Sopenharmony_ci shader = placeholder.FileSPIRVShader(empty_main_assembly(), '.spvasm') 41fd4e5da5Sopenharmony_ci config = placeholder.ConfigFlagsFile('', '.cfg') 42fd4e5da5Sopenharmony_ci spirv_args = [shader, '-o', placeholder.TempFileName('output.spv'), config] 43fd4e5da5Sopenharmony_ci 44fd4e5da5Sopenharmony_ci 45fd4e5da5Sopenharmony_ci@inside_spirv_testsuite('SpirvOptConfigFile') 46fd4e5da5Sopenharmony_ciclass TestOconfigComments(expect.SuccessfulReturn): 47fd4e5da5Sopenharmony_ci """Tests empty config files are accepted. 48fd4e5da5Sopenharmony_ci 49fd4e5da5Sopenharmony_ci https://github.com/KhronosGroup/SPIRV-Tools/issues/1778 50fd4e5da5Sopenharmony_ci """ 51fd4e5da5Sopenharmony_ci 52fd4e5da5Sopenharmony_ci shader = placeholder.FileSPIRVShader(empty_main_assembly(), '.spvasm') 53fd4e5da5Sopenharmony_ci config = placeholder.ConfigFlagsFile(""" 54fd4e5da5Sopenharmony_ci# This is a comment. 55fd4e5da5Sopenharmony_ci-O 56fd4e5da5Sopenharmony_ci--loop-unroll 57fd4e5da5Sopenharmony_ci""", '.cfg') 58fd4e5da5Sopenharmony_ci spirv_args = [shader, '-o', placeholder.TempFileName('output.spv'), config] 59fd4e5da5Sopenharmony_ci 60fd4e5da5Sopenharmony_ci@inside_spirv_testsuite('SpirvOptConfigFile') 61fd4e5da5Sopenharmony_ciclass TestOconfigComments(expect.SuccessfulReturn): 62fd4e5da5Sopenharmony_ci """Tests empty config files are accepted. 63fd4e5da5Sopenharmony_ci 64fd4e5da5Sopenharmony_ci https://github.com/KhronosGroup/SPIRV-Tools/issues/1778 65fd4e5da5Sopenharmony_ci """ 66fd4e5da5Sopenharmony_ci 67fd4e5da5Sopenharmony_ci shader = placeholder.FileSPIRVShader(empty_main_assembly(), '.spvasm') 68fd4e5da5Sopenharmony_ci config = placeholder.ConfigFlagsFile(""" 69fd4e5da5Sopenharmony_ci# This is a comment. 70fd4e5da5Sopenharmony_ci-O 71fd4e5da5Sopenharmony_ci--relax-struct-store 72fd4e5da5Sopenharmony_ci""", '.cfg') 73fd4e5da5Sopenharmony_ci spirv_args = [shader, '-o', placeholder.TempFileName('output.spv'), config] 74