56 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| .NH 1
 | |
| Testing the program
 | |
| .PP
 | |
| There is no test-suite for testing
 | |
| .I lint.
 | |
| I have written a lot of small files that each test one
 | |
| particular property of the program.
 | |
| At this moment there are about 220 test programs.
 | |
| .PP
 | |
| It would take a lot of time and effort to run these tests by hand.
 | |
| To ease this work I wrote a program that runs these tests
 | |
| automatically.
 | |
| The test program (the program that runs the tests) needs, associated
 | |
| with each .c file, a .w file, containing from each expected warning
 | |
| a substring. E.g. when the following warnings should be given by
 | |
| .I lint:
 | |
| .DS B
 | |
| .ft CW
 | |
|         file t.c, line 3, i evaluation order undefined
 | |
|         file t.c, line 6, a set but not used in function main
 | |
| .R
 | |
| .DE
 | |
| it is sufficient to write a file \f(CWt.w\fP containing
 | |
| .DS B
 | |
| .ft CW
 | |
|         a set but not used in function main
 | |
|         i evaluation order undefined
 | |
| .R
 | |
| .DE
 | |
| The test program is called with all the .c files to be tested
 | |
| as arguments.
 | |
| .PP
 | |
| Sometimes it is necessary to test
 | |
| .I lint
 | |
| on two files.
 | |
| The test program runs
 | |
| .I lint
 | |
| on two files when two consecutive
 | |
| arguments are of the form \fIname\fPa.c and \fIname\fPb.c.
 | |
| It then compares the output of
 | |
| .I lint
 | |
| with the file \fIname\fP.w.
 | |
| .PP
 | |
| .I Lint
 | |
| is also tested by running it on existing programs.
 | |
| .I Lint
 | |
| has been run on some \s-2UNIX\s+2 utility programs in
 | |
| /usr/src/cmd, on Unipress Emacs (consisting of more than 30,000
 | |
| lines of code) and the program itself.
 | |
| Bugs have been found in e.g. /usr/src/cmd/cat.c and 
 | |
| /usr/src/cmd/ld.c.
 | |
| To test the robustness of the program, it was run on the
 | |
| password file /etc/passwd and on `mixed' C program files.
 | |
| These mixed C program files are C program files that were
 | |
| broken in chunks and then put together in a different order.
 | |
| .bp
 |