glslang-zig/gtests
steve-lunarg e0b9debda2 Flatten uniform arrays
This checkin adds a --flatten-uniform-arrays option which can break
uniform arrays of samplers, textures, or UBOs up into individual
scalars named (e.g) myarray[0], myarray[1], etc.  These appear as
individual linkage objects.

Code notes:

- shouldFlatten internally calls shouldFlattenIO, and shouldFlattenUniform,
  but is the only flattening query directly called.

- flattenVariable will handle structs or arrays (but not yet arrayed structs;
  this is tested an an error is generated).

- There's some error checking around unhandled situations.  E.g, flattening
  uniform arrays with initializer lists is not implemented.

- This piggybacks on as much of the existing mechanism for struct flattening
  as it can.  E.g, it uses the same flattenMap, and the same
  flattenAccess() method.

- handleAssign() has been generalized to cope with either structs or arrays.

- Extended test infrastructure to test flattening ability.
2016-09-22 08:47:48 -06:00
..
AST.FromFile.cpp PP: Fix issue #408: # as last character in macro. 2016-07-30 12:41:35 -06:00
BuiltInResource.FromFile.cpp Rename DefaultResourceLimits.* to ResourceLimits.*. 2016-05-19 13:53:16 -04:00
CMakeLists.txt Remapper: move remapper tests into the glslangtests executable. 2016-09-02 09:21:12 -06:00
Config.FromFile.cpp Front-end: Fix known crashes by early exit on error (issue #29, issue #34, issue #35). 2016-07-09 14:53:11 -06:00
Hlsl.FromFile.cpp Flatten uniform arrays 2016-09-22 08:47:48 -06:00
Initializer.h Infrastructure: Make shared symbol-table cache complete, delete work around. 2016-08-09 19:15:17 -06:00
Link.FromFile.cpp Front-end: Fix known crashes by early exit on error (issue #29, issue #34, issue #35). 2016-07-09 14:53:11 -06:00
main.cpp Link in Google Test framework. 2016-03-31 10:31:30 -04:00
Pp.FromFile.cpp Remove duplicated tests from the runtests script. 2016-06-28 17:54:07 -04:00
README.md Link in Google Test framework. 2016-03-31 10:31:30 -04:00
Remap.FromFile.cpp WIP: SPV Remapper: add remapper test framework 2016-08-25 10:46:51 -06:00
Settings.cpp Link in Google Test framework. 2016-03-31 10:31:30 -04:00
Settings.h Link in Google Test framework. 2016-03-31 10:31:30 -04:00
Spv.FromFile.cpp HLSL: Add location offsets per resource type 2016-09-20 20:31:27 -06:00
TestFixture.cpp WIP: SPV Remapper: add remapper test framework 2016-08-25 10:46:51 -06:00
TestFixture.h Flatten uniform arrays 2016-09-22 08:47:48 -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.