mirror of https://github.com/openssl/openssl.git
				
				
				
			
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
 | |
| 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
 | |
| 
 | |
| 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 program (util/shlib_wrap.sh) 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/shlib_wrap.sh 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.
 | |
| 
 | |
| Additional variables (i.e. VERBOSE and TESTS) are described in the
 | |
| INSTALL file in the root of the OpenSSL source tree.
 | |
| 
 | |
| Example command line:
 | |
| 
 | |
|    make test EXE_SHELL="`/bin/pwd`/util/shlib_wrap.sh 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/shlib_wrap.sh valgrind --error-exitcode=1 --leak-check=full -q" OPENSSL_ia32cap=":0"
 |