diff --git a/README.rst b/README.rst index 8dd823c9c..2abec3c17 100644 --- a/README.rst +++ b/README.rst @@ -39,7 +39,7 @@ In order to build the source using CMake, just enter at the command line:: make -There are 5 different active build modes specified within the CMake buildsystem: +There are many different build modes available within the CMake buildsystem. Most of them are available for gcc and clang, though some are compiler-specific: - Release. This generates the default code without any unnecessary information in the binary files. @@ -49,8 +49,20 @@ There are 5 different active build modes specified within the CMake buildsystem: This generates code coverage information in addition to debug information. - ASan. This instruments the code with AddressSanitizer to check for memory errors. + (This includes LeakSanitizer, with recent version of gcc and clang.) + (With recent version of clang, this mode also intruments the code with + UndefinedSanitizer to check for undefined behaviour.) +- ASanDbg. + Same as ASan but slower, with debug information and better stack traces. +- MemSan. + This intruments the code with MemorySanitizer to check for uninitialised + memory reads. Experimental, needs recent clang on Linux/x86_64. +- MemSanDbg. + Same as ASan but slower, with debug information, better stack traces and + origin tracking. - Check. - This activates more compiler warnings and treats them as errors. + This activates the compiler warnings that depend on optimisation and treats + all warnings as errors. Switching build modes in CMake is simple. For debug mode, enter at the command line: @@ -77,6 +89,13 @@ Tests PolarSSL includes an elaborate test suite in *tests/* that initially requires Perl to generate the tests files (e.g. *test_suite_mpi.c*). These files are generates from a **function file** (e.g. *suites/test_suite_mpi.function*) and a **data file** (e.g. *suites/test_suite_mpi.data*). The **function file** contains the template for each test function. The **data file** contains the test cases, specified as parameters that should be pushed into a template function. +For machines with a Unix shell and OpenSSL (and optionnally GnuTLS) installed, additional test scripts are available: + +- *tests/ssl-opt.sh* runs integration tests for various TLS options (renegotiation, resumption, etc.) and tests interoperability of these options with other implementations. +- *tests/compat.sh* tests interoperability of every ciphersuite with other implementations. +- *tests/scripts/test-ref-configs.pl* test builds in various reduced configurations. +- *tests/scripts/all.sh* runs a combination of the above tests with various build options (eg ASan). + Configurations ==============