1This directory includes automated test cases for yash.
2
3The test cases are grouped into POSIX tests and yash-specific tests, which
4are written in files named *-p.tst and *-y.tst, respectively. Every POSIX
5shell is supposed to pass the POSIX tests, so those test cases does not
6test any yash-specific behavior at all. To run the POSIX tests on a shell
7other than yash, run in this directory:
8
9$ make TESTEE=<shell_command_name> test-posix
10
11---------------------------------------------------------------------------
12
13Some test cases are skipped by the test runner depending on the
14configuration of yash, user's privilege, etc. If the help built-in is
15disabled in the configuration, for example, tests for the help built-in are
16skipped. There is no configuration in which no tests are skipped; some
17tests require a root privilege while some require a non-root privilege.
18
19---------------------------------------------------------------------------
20
21Test cases can be run in parallel if your make supports parallel build.
22Exceptionally, test cases that require a control terminal have to be run
23sequentially if a pseudo-terminal cannot be opened to obtain a control
24terminal that can be used for testing. In that case, you have to run the
25tests in the foreground process group so that they can make use of the
26current control terminal. Test case files containing such tests are marked
27with the %REQUIRETTY% keyword.
28
29---------------------------------------------------------------------------
30
31To test yash with Valgrind, run "make test-valgrind" in this directory.
32Yash must have been built without enabling any of the following variables
33in config.h:
34
35 * HAVE_PROC_SELF_EXE
36 * HAVE_PROC_CURPROC_FILE
37 * HAVE_PROC_OBJECT_AOUT
38
39Otherwise, some tests would fail after Valgrind is invoked as a shell where
40yash should be invoked.
41
42Some tests are skipped to avoid false failures.
43