glslang-zig/gtests
Arcady Goldmints-Orlov adcc7e8163 Add tests for conditionals that return a struct value
There are 3 separate tests added to cover the 3 cases in
visitSelection(). With SPIR-V versions prior to 1.4, control flow is
generated, with GLSL generating code to execute only the appropriate
branch of the conditional while HLSL executes both branches and uses the
control flow to select the appropriate one. Finally, with SPIR-V
versions newer than 1.4, OpSelect can be used on structs.

Note that the hlsl.structcopy.comp and hlsl.structcopylogical.comp tests
have identical shader code, but are compiled with different versions of
SPIR-V and result in different codepaths being used and different SPIR-V
generated.
2023-04-03 12:33:59 -04:00
..
AST.FromFile.cpp Fix crash on bad structure member reference 2023-01-11 16:53:39 -07:00
BuiltInResource.FromFile.cpp Fix issues with MaxDualSourceDrawBuffersEXT 2022-12-21 11:53:50 -08:00
CMakeLists.txt Fix locations of cmake files in side compat shims 2022-11-16 16:54:09 -07:00
Common.cpp Add IntLog2 and use it 2021-04-13 14:09:44 -06:00
Config.FromFile.cpp Improve ResourceLimits interface to be more forward compatible 2022-11-01 12:06:51 -06:00
GlslMapIO.FromFile.cpp Fix GCC sign-compare warnings 2022-01-04 19:55:41 -07:00
HexFloat.cpp Build/Test: Dropping 2013 allows using the latest googletests. 2020-08-05 11:07:07 -06:00
Hlsl.FromFile.cpp Add tests for conditionals that return a struct value 2023-04-03 12:33:59 -04:00
Initializer.h Infrastructure: Make shared symbol-table cache complete, delete work around. 2016-08-09 19:15:17 -06:00
Link.FromFile.cpp [glslang] Refine implicit array size interfaces. (#3074) 2022-12-13 11:20:28 -07:00
Link.FromFile.Vk.cpp Remove GLSLANG_ANGLE 2022-11-08 15:11:36 -05:00
main.cpp SPV: Implement Vulkan 1.1 features and extensions. 2018-03-06 16:12:04 -07:00
pch.h Use precompiled headers for some glslang projects 2018-10-31 15:38:08 -05:00
Pp.FromFile.cpp Build/Test: Dropping 2013 allows using the latest googletests. 2020-08-05 11:07:07 -06:00
README.md Link in Google Test framework. 2016-03-31 10:31:30 -04:00
Remap.FromFile.cpp Build/Test: Dropping 2013 allows using the latest googletests. 2020-08-05 11:07:07 -06:00
Settings.cpp Gtests can be run on another source tree 2016-10-05 10:28:32 -04:00
Settings.h Gtests can be run on another source tree 2016-10-05 10:28:32 -04:00
Spv.FromFile.cpp Add tests for conditionals that return a struct value 2023-04-03 12:33:59 -04:00
TestFixture.cpp GL_EXT_mesh_shader/SPV_EXT_mesh_shader implementation 2022-09-01 18:02:21 -07:00
TestFixture.h Remove GLSLANG_ANGLE 2022-11-08 15:11:36 -05:00
VkRelaxed.FromFile.cpp fix cases where symbols in the tree didn't get updated during block merging 2022-01-28 23:38:56 -05:00

Glslang Tests based on the Google Test Framework

This directory contains Google Test based test fixture and test cases for glslang.

Apart from typical unit tests, necessary utility methods are added into the GlslangTests fixture to provide the ability to do file-based integration tests. Various *.FromFile.cpp files lists names of files containing input shader code in the Test/ directory. Utility methods will load the input shader source, compile them, and compare with the corresponding expected output in the Test/baseResults/ directory.

How to run the tests

Please make sure you have a copy of Google Test checked out under the External directory before building. After building, just run the ctest command or the gtests/glslangtests binary in your build directory.

The gtests/glslangtests binary also provides an --update-mode command line option, which, if supplied, will overwrite the golden files under the Test/baseResults/ directory with real output from that invocation. This serves as an easy way to update golden files.