| 
					
				 | 
			
			
				@@ -111,15 +111,19 @@ Running gcov for unit test coverage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (On OSX, you'll need to start with `--enable-coverage CC=clang`.) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Then, look at the .gcov files in `coverage-output`.  '-' before a line means 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-that the compiler generated no code for that line.  '######' means that the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-line was never reached.  Lines with numbers were called that number of times. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 If that doesn't work: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    * Try configuring Tor with `--disable-gcc-hardening` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    * You might need to run `make clean` after you run `./configure`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Then, look at the .gcov files in `coverage-output`.  '-' before a line means 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+that the compiler generated no code for that line.  '######' means that the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+line was never reached.  Lines with numbers were called that number of times. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+For more details about how to read gcov output, see the [Invoking 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+gcov](https://gcc.gnu.org/onlinedocs/gcc/Invoking-Gcov.html) chapter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+of the GCC manual. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 If you make changes to Tor and want to get another set of coverage results, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 you can run `make reset-gcov` to clear the intermediary gcov output. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -128,9 +132,13 @@ a meaningful diff between them, you can run: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ./scripts/test/cov-diff coverage-output1 coverage-output2 | less 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-In this diff, any lines that were visited at least once will have coverage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-"1".  This lets you inspect what you (probably) really want to know: which 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-untested lines were changed?  Are there any new untested lines? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+In this diff, any lines that were visited at least once will have coverage "1", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+and line numbers are deleted.  This lets you inspect what you (probably) really 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+want to know: which untested lines were changed?  Are there any new untested 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+lines? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+If you run ./scripts/test/cov-exclude, it marks excluded unreached 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+lines with 'x', and excluded reached lines with '!!!'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Running integration tests 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ------------------------- 
			 |