1*3117ece4SchristosTesting 2*3117ece4Schristos======= 3*3117ece4Schristos 4*3117ece4SchristosZstandard CI testing is split up into three sections: 5*3117ece4Schristosshort, medium, and long tests. 6*3117ece4Schristos 7*3117ece4SchristosShort Tests 8*3117ece4Schristos----------- 9*3117ece4SchristosShort tests run on CircleCI for new commits on every branch and pull request. 10*3117ece4SchristosThey consist of the following tests: 11*3117ece4Schristos- Compilation on all supported targets (x86, x86_64, ARM, AArch64, PowerPC, and PowerPC64) 12*3117ece4Schristos- Compilation on various versions of gcc, clang, and g++ 13*3117ece4Schristos- `tests/playTests.sh` on x86_64, without the tests on long data (CLI tests) 14*3117ece4Schristos- Small tests (`tests/legacy.c`, `tests/longmatch.c`) on x64_64 15*3117ece4Schristos 16*3117ece4SchristosMedium Tests 17*3117ece4Schristos------------ 18*3117ece4SchristosMedium tests run on every commit and pull request to `dev` branch, on TravisCI. 19*3117ece4SchristosThey consist of the following tests: 20*3117ece4Schristos- The following tests run with UBsan and Asan on x86_64 and x86, as well as with 21*3117ece4Schristos Msan on x86_64 22*3117ece4Schristos - `tests/playTests.sh --test-large-data` 23*3117ece4Schristos - Fuzzer tests: `tests/fuzzer.c`, `tests/zstreamtest.c`, and `tests/decodecorpus.c` 24*3117ece4Schristos- `tests/zstreamtest.c` under Tsan (streaming mode, including multithreaded mode) 25*3117ece4Schristos- Valgrind Test (`make -C tests test-valgrind`) (testing CLI and fuzzer under `valgrind`) 26*3117ece4Schristos- Fuzzer tests (see above) on ARM, AArch64, PowerPC, and PowerPC64 27*3117ece4Schristos 28*3117ece4SchristosLong Tests 29*3117ece4Schristos---------- 30*3117ece4SchristosLong tests run on all commits to `release` branch, 31*3117ece4Schristosand once a day on the current version of `dev` branch, 32*3117ece4Schristoson TravisCI. 33*3117ece4SchristosThey consist of the following tests: 34*3117ece4Schristos- Entire test suite (including fuzzers and some other specialized tests) on: 35*3117ece4Schristos - x86_64 and x86 with UBsan and Asan 36*3117ece4Schristos - x86_64 with Msan 37*3117ece4Schristos - ARM, AArch64, PowerPC, and PowerPC64 38*3117ece4Schristos- Streaming mode fuzzer with Tsan (for the `zstdmt` testing) 39*3117ece4Schristos- ZlibWrapper tests, including under valgrind 40*3117ece4Schristos- Versions test (ensuring `zstd` can decode files from all previous versions) 41*3117ece4Schristos- `pzstd` with asan and tsan, as well as in 32-bits mode 42*3117ece4Schristos- Testing `zstd` with legacy mode off 43*3117ece4Schristos- Entire test suite and make install on macOS 44