This commit was manufactured by cvs2svn to create tag
[kbuild-mirror.git] / src / gmake / tests / README
blob12fa6983b84206107fd63ff30e5fd447a307f80c
1 This is release 3.78 (September 6, 1999) of the GNU make test
2 suite.  See the file NEWS for some of the changes since the last
3 release.
5 This release is made by psmith@gnu.org to correspond to GNU make 3.78.
6 It won't work correctly for versions before that.  In addition to some
7 infrastructure changes I've added a number of new tests.
9 Rob Tulloh has contributed changes to get the suite running on NT.
11 Eli Zaretskii and Esa A E Peuha <peuha@cc.helsinki.fi> have contributed
12 changes to get the suite running on DJGPP/DOS.
14 This package has a number of problems which preclude me from
15 distributing it with make as a default "make check" test suite.  The
16 most serious of these is that it's not parallelizable: it scribbles all
17 over its installation directory and so can only test one make at a
18 time.  I simply don't have time to do more with this than I am so far;
19 I'm very actively interested in finding someone willing to overhaul the
20 test suite infrastructure.  If you're interested, contact me (see below)!
22 The test suite thus far has been written by Steve McGee, Chris Arthur,
23 and Paul D. Smith.  It is covered by the GNU General Public License
24 (Version 2), described in the file COPYING.
26 The test suite requires Perl and is known to work with Perl 4.036 and
27 Perl 5.004 (available from ftp.gnu.org, and portable to many machines).
28 Earlier or later versions may work; I don't know.  It assumes that the
29 first "diff" it finds is GNU diff, but that only matters if a test
30 fails.
32 To run the test suite on a UNIX system, use "perl ./run_make_tests"
33 (or just "./run_make_tests" if you have a perl on your PATH).
35 To run the test suite on Windows NT or DOS systems, use
36 "perl.exe ./run_make-tests.pl".
38 By default, the test engine picks up the first executable called "make"
39 that it finds in your path.  You may use the -make_path option (ie,
40 "perl run_make_tests -make_path /usr/local/src/make-3.78/make") if
41 you want to run a particular copy.  This now works correctly with
42 relative paths and when make is called something other than "make" (like
43 "gmake").
45 Tests cannot end with a "~" character, as the test suite will ignore any
46 that do (I was tired of having it run my Emacs backup files as test :)
48 If you want to run the tests in parallel, you should use the mkshadow
49 script included here to create temporary "copies" (via symbolic links)
50 of the test suite, one for each parallel job.  This is a pain and one
51 day maybe the test suite will be rewritten so it's no longer
52 necessary--volunteers welcome!
54 Also, sometimes the tests may behave strangely on networked
55 filesystems.  You can use mkshadow to create a copy of the test suite in
56 /tmp or similar, and try again.  If the error disappears, it's an issue
57 with your network or file server, not GNU make (I believe).
59 The options/dash-l test will not really test anything if the copy of
60 make you are using can't obtain the system load.  Some systems require
61 make to be setgid sys or kmem for this; if you don't want to install
62 make just to test it, make it setgid to kmem or whatever group /dev/kmem
63 is (ie, "chgrp kmem make;chmod g+s make" as root).  In any case, the
64 options/dash-l test should no longer *fail* because make can't read
65 /dev/kmem.
67 A directory named "work" will be created when the tests are run which
68 will contain any makefiles and "diff" files of tests that fail so that
69 you may look at them afterward to see the output of make and the
70 expected result.
72 There is a -help option which will give you more information about the
73 other possible options for the test suite.
75 Any complaints/suggestions/bugs/etc. for the test suite itself (as
76 opposed to problems in make that the suite finds) should be sent to
77 psmith@gnu.org.  Enjoy!
78                                                 Paul D. Smith
79                                                 Chris Arthur