mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-09 12:00:05 +00:00
414eb60482
The existing test harness is a homemade shell script. All the tests and the expected results are written in plain text files. The harness just reads in a test, invoke the glslangValidator binary on it, and compare the result with the golden file. All tests are kinda integration tests. This patch add Google Test as an external project, which provides a new harness for reading shader source files, compile to SPIR-V, and then compare with the expected output.
27 lines
1.2 KiB
Markdown
27 lines
1.2 KiB
Markdown
Glslang Tests based on the Google Test Framework
|
|
================================================
|
|
|
|
This directory contains [Google Test][gtest] based test fixture and test
|
|
cases for glslang.
|
|
|
|
Apart from typical unit tests, necessary utility methods are added into
|
|
the [`GlslangTests`](TestFixture.h) 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][gtest] 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.
|
|
|
|
[gtest]: https://github.com/google/googletest
|