aboutsummaryrefslogtreecommitdiff
path: root/bin/ed/test/README
blob: 46d41335034c817796577c9dc1ae3761871da1df (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
The files in this directory with suffixes `.t', `.d', `.r' and `.err' are
used for testing ed.  To run the tests, set the ED variable in the Makefile
for the path name of the program to be tested (e.g., /bin/ed), and type
`make'.  The tests do not exhaustively verify POSIX compliance nor do
they verify correct 8-bit or long line support.

The test file suffixes have the following meanings:
.t    Template - a list of ed commands from which an ed script is
      constructed
.d    Data - read by an ed script
.r    Result - the expected output after processing data via an ed
      script.
.err  Error - invalid ed commands that should generate an error

The output of the tests is written to the two files err.o and scripts.o.
At the end of the tests, these files are grep'ed for error messages,
which look like:
	*** The script u.ed exited abnormally ***
or:
	*** Output u.o of script u.ed is incorrect ***

It is assumed that the ed being tested processes escapes (\) in file names.
This is so that a name starting with bang (!) can be read, via:
	r \!file
Without the escape, a POSIX ed would attempt to read the output of
the shell command `file'.  If the ed being tested does not support escape
processing on file names, then the script `mkscripts.sh' should be modified
accordingly.

The POSIX requirement that an address range not be used where at most
a single address is expected has been relaxed in this version of ed.
Therefore, the  following scripts  which test for compliance with this
POSIX rule exit abnormally:
=-err.ed
a1-err.ed
i1-err.ed
k1-err.ed
r1-err.ed

In addition, one of !1-err.ed or !2.ed will fail, depending on whether or
not ed was compiled with the VI_BANG directive.