Correctness tests for the base utilities. To test your system run env IN_PATH=x ./test-all [...] To test your implementations run env EPATH= ./test-all [...] you also copy all files into and just run ./test [...] To run the utilities under valgrind run env PREFIX=valgrind ./test-all [...] You can also run indiviual tests: env [PREFIX=valgrind] [=] ./-test/test [...] ( is uppercase of with _ instead of - (that is, `tr [a-z-] [A-Z_]`)) here, usually require the prefix ../ unless it is an absolute path, but sometimes the prefix ../../ is required. Relative paths are always relative to ./-test/, or subdirectory of ./-test/, not to the current working directory. The exit status for ./-test/test are: 0: All tests passed. 1: The implemention is standards-compliant (as far as the test can tell), but at least one test failed. 2: The implemention is not standards-compliant. NOTES FOR PATCH-TEST The test for patch(1) requires that the -f flag is implemented and it is used to prevent patch(1) from asking the user questions. If the -f flag is not available or does something else, set FORCE_PATCH to the path and flags for patch(1) that runs patch(1) qwithout asking questions. If the path is relative, it is relative to a direct subdiretory of ./patch-test/ (../../ prefix.) You may also have to change some strings in ./patct-test/__test.