.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