summaryrefslogtreecommitdiffstats
path: root/unit/atf-src/tools/atf-formats.5
blob: bb919f483a9cf6a819c7e912aa812c9589734857 (plain)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
.\"
.\" Automated Testing Framework (atf)
.\"
.\" Copyright (c) 2007 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
.\" CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd December 20, 2011
.Dt ATF-FORMATS 5
.Os
.Sh NAME
.Nm atf-formats
.Nd machine-parseable data formats used by ATF
.Sh DESCRIPTION
This manual page describes the multiple data formats used in ATF.
These formats affect configuration files, control files and any data that
is externalized or internalized by the tools.
.Pp
Data files are always organized as follows:
.Bd -literal -offset indent
Header1: Value1            \\
    ...                    | head
HeaderN: ValueN            /
                           mandatory blank line
Free-form text contents    \\
    ...                    | body
    ...                    /
.Ed
.Pp
A file must always contain a
.Sq Content-Type
header and must always separate that header from the body with a blank
line, even if the body is empty.
.Pp
The
.Sq Content-Type
is always of the form:
.Bd -literal -offset indent
Content-Type: application/X-atf-<subtype>; version="<version>"
.Ed
.Pp
where
.Sq subtype
indicates the specific file format and
.Sq version
its format version.
This header must be the first one of the file.
.Pp
The main purpose of the
.Sq Content-Type
header, aside from determining the format used in the file, is to allow
future changes to a given format.
Whenever an incompatible change is made, the version is bumped by one.
By keeping the header in the first line, future versions may even remove
the need for such a header -- e.g. if some format was replaced by XML
files, which have their own mandatory header.
.Pp
The rest of this document details the different format types.
.Ss Format: application/X-atf-atffile, version: 1
Atffiles are logically divided into three sections:
.Bl -bullet
.It
Test programs: the list of test programs that define the test suite
described by the Atffile.
.It
Meta-data properties: these define some constant values applicable to
all the test programs defined in the file.
In some sense they define the properties that describe the test suite.
.It
Configuration variables: defaults for configuration variables that
can be overridden through configuration files or the command line.
.El
.Pp
The grammar for Atffiles is the following:
.Bd -literal -offset indent
DATA ::= ( ( CONF | PROP | TP )? COMMENT? NEWLINE )* EOF
CONF ::= 'conf:' WORD EQUAL STRING
PROP ::= 'prop:' WORD EQUAL STRING
TP ::= TPFILE | TPGLOB
TPFILE ::= 'tp: ' STRING
TPGLOB ::= 'tp-glob: ' STRING
STRING ::= WORD | '"' WORD* '"'
.Ed
.Pp
The meaning of the constructions above is:
.Bl -tag -width TPGLOBXX
.It CONF
Definition of a configuration variable.
.It PROP
Definition of a meta-data property.
.It TPFILE
Addition of a test program into the test suite.
The string is taken literally as the program's name, and this program
must exist.
.It TPGLOB
Addition of multiple test programs into the test suite.
The string is taken as a glob pattern, which may have or not have any
matches in the current directory.
.El
.Pp
An example:
.Bd -literal -offset indent
prop: test-suite = utilities

conf: unprivileged-user = nobody

tp: t_cp
tp: t_mv
tp: t_df
tp-glob: t_dir_*
.Ed
.Ss Format: application/X-atf-config, version: 1
Configuration files are very simple: they only contain a list of variable
name/variable value pairs.
Their grammar is:
.Bd -literal -offset indent
DATA ::= ( VAR? COMMENT? NEWLINE )* EOF
VAR ::= WORD EQUAL STRING
COMMENT ::= HASH WORD*
STRING ::= WORD | '"' WORD* '"'
.Ed
.Pp
An example:
.Bd -literal -offset indent
# This is the system-wide configuration file for ATF.
# The above and this line are comments placed on their own line.

var1 = this is a variable value
var2 = this is another one      # Optional comment at the end.
.Ed
.Ss Format: application/X-atf-tps, version: 3
The
.Sq application/X-atf-tps
format multiplexes the standard output, standard error and results output
streams from multiple test programs into a single data file.
This format is used by
.Xr atf-run 1
to report the execution of several test programs and is later parsed by
.Xr atf-report 1
to inform the user of this process.
It has the following grammar:
.Bd -literal -offset indent
DATA ::= INFO* TPS-COUNT TP-STANZA* INFO* EOF
INFO ::= 'info' COLON STRING COMMA STRING NEWLINE
TPS-COUNT ::= 'tps-count' COLON POSITIVE-NUMBER NEWLINE
TP-STANZA ::= TP-START TC-STANZA* TC-END
TP-START ::= 'tp-start' COLON TIMESTAMP COMMA STRING COMMA
             POSITIVE-NUMBER NEWLINE
TP-END ::= 'tc-end' COLON TIMESTAMP COMMA STRING (COMMA STRING)?
TC-STANZA ::= TC-START (TC-SO | TC-SE)* TC-END
TC-START ::= 'tc-start' COLON TIMESTAMP COMMA STRING NEWLINE
TC-SO ::= 'tc-so' COLON STRING NEWLINE
TC-SE ::= 'tc-se' COLON STRING NEWLINE
TC-END ::= 'tc-end' COLON TIMESTAMP COMMA STRING COMMA TCR NEWLINE
TCR ::= 'passed' | ('failed' | 'skipped') COMMA STRING
TIMESTAMP ::= [0-9]+.[0-9]+
.Ed
.Pp
The meaning of the constructions above is:
.Bl -tag -width TPSXCOUNTXX
.It TPS-COUNT
Indicates the number of test programs that will be executed.
There will be this exact amount of
.Sq TP-STANZA
constructions following it.
.It TP-START
Indicates the beginning of a test program.
This includes the program's name and the amount of test cases that
will follow.
.It TP-END
Indicates the completion of a test program.
This is followed by the program's name and, if the program ended
prematurely, an error message indicating the reason of its failure.
A successful execution of a test program (regardless of the status of its
test cases) must not be accompanied by any reason.
.It TC-START
Indicates the beginning of a test case.
This is accompanied by the test case's name.
.It TC-SO
Contains a text line sent to the standard output stream during the
execution of the test case.
Leading and trailing space is preserved.
.It TC-SE
Contains a text line sent to the standard error stream during the
execution of the test case.
Leading and trailing space is preserved.
.It TC-END
Indicates the completion of a test case.
This is accompanied by the test case's name, its result and the reason
associated with this result (if applicable).
.El
.Pp
An example:
.Bd -literal -offset indent
tps-count: 2
tp-start: calculator, 1324318951.838923, 2
tc-start: add, 1324318951.839101
tc-end: add, 1324318951.839500, passed
tc-start: subtract, 1324318951.840001
tc-so: 3-2 expected to return 1 but got 0
tc-end: subtract, 1324318952.000123, failed, Calculated an unexpected value
tp-end: calculator, 1324318952.002301
tp-start: files, 1, 1324318952.502348
tc-start: copy, 1324318952.508291
tc-se: could not find the cp(1) utility
tc-end: copy, 1324318953.203145, skipped
tp-end: files, 1324318953.203800
.Ed
.Sh SEE ALSO
.Xr atf 7