summaryrefslogtreecommitdiff
path: root/tests/README
diff options
context:
space:
mode:
Diffstat (limited to 'tests/README')
-rw-r--r--tests/README56
1 files changed, 27 insertions, 29 deletions
diff --git a/tests/README b/tests/README
index aab3c35..6ffa19a 100644
--- a/tests/README
+++ b/tests/README
@@ -7,7 +7,7 @@ This entire test suite, including all test files, are copyright and
distributed under the following terms:
-----------------------------------------------------------------------------
- Copyright (C) 1992-2020 Free Software Foundation, Inc.
+ Copyright (C) 1992-2022 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@@ -23,10 +23,9 @@ distributed under the following terms:
this program. If not, see <http://www.gnu.org/licenses/>.
-----------------------------------------------------------------------------
-The test suite requires Perl. These days, you should have at least Perl
-5.004 (available from ftp.gnu.org, and portable to many machines). It
-used to work with Perl 4.036 but official support for Perl 4.x was
-abandoned a long time ago, due to lack of testbeds, as well as interest.
+The test suite requires Perl. These days, you should have at least Perl 5.6.
+Newer versions may be required: I don't test regularly with older versions
+than what is installed by default on my development systems.
The test suite assumes that the first "diff" it finds on your PATH is
GNU diff, but that only matters if a test fails.
@@ -54,14 +53,6 @@ with your network or file server, not GNU make (I believe). This
shouldn't happen very often anymore: I've done a lot of work on the
tests to reduce the impacts of this situation.
-The options/dash-l test will not really test anything if the copy of
-make you are using can't obtain the system load. Some systems require
-make to be setgid sys or kmem for this; if you don't want to install
-make just to test it, make it setgid to kmem or whatever group /dev/kmem
-is (i.e., "chgrp kmem make;chmod g+s make" as root). In any case, the
-options/dash-l test should no longer *fail* because make can't read
-/dev/kmem.
-
A directory named "work" will be created when the tests are run which
will contain any makefiles and "diff" files of tests that fail so that
you may look at them afterward to see the output of make and the
@@ -74,28 +65,35 @@ other possible options for the test suite.
Open Issues
-----------
-The test suite has a number of problems which should be addressed. One
-VERY serious one is that there is no real documentation. You just have
-to see the existing tests. Use the newer tests: many of the tests
-haven't been updated to use the latest/greatest test methods. See the
-ChangeLog in the tests directory for pointers.
+The test suite has a number of problems which should be addressed. One VERY
+serious one is that there is no real documentation. You just have to see the
+existing tests. Use the newer tests: many of the tests haven't been updated
+to use the latest/greatest test methods. See the ChangeLogs for pointers.
+
+The second serious problem is that it's not relocatable: when you build out of
+the source tree it creates symlinks, which doesn't work on every system and is
+just bogus to boot.
+
+The third serious problem is that it's not parallelizable: it scribbles all
+over its installation directory and so can only test one make at a time.
+
+The fourth serious problem is that since the tests scribble all over the same
+directory (a) they can interfere with each other and (b) we cannot preserve
+the full environment for every test, if it involves creating temporary files
+etc. as they must be deleted before the next test.
-The second serious problem is that it's not parallelizable: it scribbles
-all over its installation directory and so can only test one make at a
-time. The third serious problem is that it's not relocatable: the only
-way it works when you build out of the source tree is to create
-symlinks, which doesn't work on every system and is bogus to boot. The
-fourth serious problem is that it doesn't create its own sandbox when
-running tests, so that if a test forgets to clean up after itself that
-can impact future tests.
+To solve these the suite should create a separate directory for EVERY test,
+local to the build directory, and all temporary files should exist in that
+directory. The directory can be preserved on error, or removed if the test
+succeeds (unless --keep is given).
Bugs
----
-Any complaints/suggestions/bugs/etc. for the test suite itself (as
-opposed to problems in make that the suite finds) should be handled the
-same way as normal GNU make bugs/problems (see the README for GNU make).
+Any complaints/suggestions/bugs/etc. for the test suite itself should be
+handled the same way as normal GNU make bugs/problems (see the README for GNU
+make).
Paul D. Smith