| # Vello Tests |
| |
| This folder contains the infrastructure used for testing Vello. |
| The kinds of test currently used are: |
| |
| - Property tests |
| - These tests are run on both the GPU and CPU. |
| - These create scenes with |
| - Snapshot tests |
| - These tests use the GPU shaders as a source of truth, but the CPU shaders are also ran for these tests. |
| - These have a non-exact comparison metric, because of small differences between rendering on different platforms. |
| This includes differences from "fast math" on Apple platforms. |
| - Comparison tests |
| - These tests compare the results from running a scene through the CPU and GPU pathways. |
| - This ensures that the GPU renderer matches the reference CPU renderer. |
| - We hope to largely phase these out in favour of additional snapshot tests. |
| |
| ## LFS |
| |
| We have two groups of snapshot tests. |
| The first of these groups are the smoke snapshot tests. |
| This is a small set of tests for which the reference files are included within this repository. |
| These reference files can be found in `smoke_snapshots`. |
| These are always required to pass. |
| |
| We use git Large File Storage for the rest of the snapshot tests. |
| This is an experiment to determine how suitable git LFS is for our needs. |
| These tests will detect whether the LFS files failed to download properly, and will pass on CI in that case. |
| LFS downloads could fail if the Linebender organisation has run out of LFS bandwidth or storage. |
| If this occurs, we will re-evaluate our LFS based snapshot testing solution. |
| |
| To run these tests locally, install [git lfs](https://git-lfs.com/), then run `git lfs pull`. |