glslang/gtests
jimihem db4d6f85af
The array size of gl_SampleMask and gl_SampleMaskIn is ceil(gl_MaxSamples/32)
Oes spec says:
    For the both the input array gl_SampleMaskIn[] and the output array gl_SampleMask[], bit B of mask M
    (gl_SampleMaskIn[M] or gl_SampleMask[M]) corresponds to sample 32*M+B. These arrays have
    ceil(gl_MaxSamples/32) elements, where gl_MaxSamples is the maximum number of color samples
    supported by the implementation.

    But glslang report error "array must have size before use length".

    layout(location = 0) out mediump vec4 fragColor;
    void main (void)
    {
    for (int i = 0; i < gl_SampleMask.length(); ++i)
    gl_SampleMask[i] = int(0xAAAAAAAA);

       fragColor = vec4(0.0, 1.0, 0.0, 1.0);
    }

* Add two test items, one is for gl_MaxSapmles = 32 and the other one is for gl_MaxSapmles = 64.
2023-12-29 16:23:16 -05:00
..
AST.FromFile.cpp The array size of gl_SampleMask and gl_SampleMaskIn is ceil(gl_MaxSamples/32) 2023-12-29 16:23:16 -05:00
BuiltInResource.FromFile.cpp Fix issues with MaxDualSourceDrawBuffersEXT 2022-12-21 11:53:50 -08:00
CMakeLists.txt Only install/test if PROJECT_IS_TOP_LEVEL 2023-12-01 18:35:36 -05: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 Remove GLSLANG_WEB and GLSLANG_WEB_DEVEL 2023-07-28 11:49:10 -06:00
HexFloat.cpp Build/Test: Dropping 2013 allows using the latest googletests. 2020-08-05 11:07:07 -06:00
Hlsl.FromFile.cpp fix: Support SV_ViewID keywords for hlsl. 2023-11-22 17:04:38 -05: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_WEB and GLSLANG_WEB_DEVEL 2023-07-28 11:49:10 -06: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 Output 8 and 16 bit capabilities OpSpecConstantOp 2023-12-15 18:36:00 -05:00
TestFixture.cpp GL_EXT_mesh_shader/SPV_EXT_mesh_shader implementation 2022-09-01 18:02:21 -07:00
TestFixture.h Remove GlslangToSpv.h dependency on SpvTools.h 2023-11-11 08:55:43 -07:00
VkRelaxed.FromFile.cpp Remove GLSLANG_WEB and GLSLANG_WEB_DEVEL 2023-07-28 11:49:10 -06: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.