diff options
author | Dr. David von Oheimb <David.von.Oheimb@siemens.com> | 2020-06-10 14:15:28 +0200 |
---|---|---|
committer | Dr. David von Oheimb <David.von.Oheimb@siemens.com> | 2020-07-05 11:29:43 +0200 |
commit | 036cbb6bbf30955abdcffaf6e52cd926d8d8ee75 (patch) | |
tree | 1929b9d33c7041858cbbed980f8c981d8eb77c3c /NOTES-Valgrind.md | |
parent | util/markdownlint.rb: Add two rule exceptions: MD023 and MD026 (diff) | |
download | openssl-036cbb6bbf30955abdcffaf6e52cd926d8d8ee75.tar.xz openssl-036cbb6bbf30955abdcffaf6e52cd926d8d8ee75.zip |
Rename NOTES*, README*, VERSION, HACKING, LICENSE to .md or .txt
Reviewed-by: Tim Hudson <tjh@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12109)
Diffstat (limited to 'NOTES-Valgrind.md')
-rw-r--r-- | NOTES-Valgrind.md | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/NOTES-Valgrind.md b/NOTES-Valgrind.md new file mode 100644 index 0000000000..0ecca4f7dc --- /dev/null +++ b/NOTES-Valgrind.md @@ -0,0 +1,70 @@ + +NOTES FOR VALGRIND +================== + +Valgrind is a test harness that includes many tools such as memcheck, +which is commonly used to check for memory leaks, etc. The default tool +run by Valgrind is memcheck. There are other tools available, but this +will focus on memcheck. + +Valgrind runs programs in a virtual machine, this means OpenSSL unit +tests run under Valgrind will take longer than normal. + +Requirements +------------ + +1. Platform supported by Valgrind + See: http://valgrind.org/info/platforms.html +2. Valgrind installed on the platform + See: http://valgrind.org/downloads/current.html +3. OpensSSL compiled + See: [INSTALL.md](INSTALL.md) + +Running Tests +------------- + +Test behavior can be modified by adjusting environment variables. + +`EXE_SHELL` + +This variable is used to specify the shell used to execute OpenSSL test +programs. The default wrapper (util/wrap.pl) initializes the environment +to allow programs to find shared libraries. The variable can be modified +to specify a different executable environment. + + EXE_SHELL="`/bin/pwd`/util/wrap.pl valgrind --error-exitcode=1 --leak-check=full -q" + +This will start up Valgrind with the default checker (memcheck). +The --error-exitcode=1 option specifies that Valgrind should exit with an +error code of 1 when memory leaks occur. +The --leak-check=full option specifies extensive memory checking. +The -q option prints only error messages. +Additional Valgrind options may be added to the EXE_SHELL variable. + +`OPENSSL_ia32cap` + +This variable controls the processor-specific code on Intel processors. +By default, OpenSSL will attempt to figure out the capabilities of a +processor, and use it to its fullest capability. This variable can be +used to control what capabilities OpenSSL uses. + +As of valgrind-3.15.0 on Linux/x86_64, instructions up to AVX2 are +supported. Setting the following disables instructions beyond AVX2: + +`OPENSSL_ia32cap=":0"` + +This variable may need to be set to something different based on the +processor and Valgrind version you are running tests on. More information +may be found in [docs/man3/OPENSSL_ia32cap.pod](docs/man3/OPENSSL_ia32cap.pod). + +Additional variables (such as `VERBOSE` and `TESTS`) are described in the +file [test/README.md](test/README.md). + +Example command line: + + $ make test EXE_SHELL="`/bin/pwd`/util/wrap.pl valgrind --error-exitcode=1 --leak-check=full -q" OPENSSL_ia32cap=":0" + +If an error occurs, you can then run the specific test via the `TESTS` +variable with the VERBOSE option to gather additional information. + + $ make test VERBOSE=1 TESTS=test_test EXE_SHELL="`/bin/pwd`/util/wrap.pl valgrind --error-exitcode=1 --leak-check=full -q" OPENSSL_ia32cap=":0" |