Revert r359385-r359387
As noted by brooks/emaste, this is the wrong approach to take. Revert the changes so brooks can apply a more proper change. Requested by: brooks, emaste
This commit is contained in:
parent
9a9f88cc11
commit
09ae09a9eb
@ -1,95 +0,0 @@
|
|||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 May 20, 2015
|
|
||||||
.Dt KYUA-ABOUT 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm "kyua about"
|
|
||||||
.Nd Shows detailed authors, license, and version information
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Op Ar authors | license | version
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The
|
|
||||||
.Sq about
|
|
||||||
command provides generic information about the
|
|
||||||
.Xr kyua 1
|
|
||||||
tool.
|
|
||||||
In the default synopsis form (no arguments), the information printed
|
|
||||||
includes:
|
|
||||||
.Bl -enum
|
|
||||||
.It
|
|
||||||
The name of the package, which is
|
|
||||||
.Sq kyua .
|
|
||||||
.It
|
|
||||||
The version number, which is
|
|
||||||
.Sq 0.13 .
|
|
||||||
.It
|
|
||||||
License information.
|
|
||||||
.It
|
|
||||||
Authors information.
|
|
||||||
.It
|
|
||||||
A link to the project web site.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
You can customize the information printed by this command by specifying
|
|
||||||
the desired topic as the single argument to the command.
|
|
||||||
This can be one of:
|
|
||||||
.Bl -tag -width authorsXX
|
|
||||||
.It Ar authors
|
|
||||||
Displays the list of authors and contributors only.
|
|
||||||
.It Ar license
|
|
||||||
Displays the license information and the list of copyrights.
|
|
||||||
.It Ar version
|
|
||||||
Displays the package name and the version number in a format that is
|
|
||||||
compatible with the output of GNU tools that support a
|
|
||||||
.Fl -version
|
|
||||||
flag.
|
|
||||||
Use this whenever you have to query the version number of the package.
|
|
||||||
.El
|
|
||||||
.Sh FILES
|
|
||||||
The following files are read by the
|
|
||||||
.Nm
|
|
||||||
command:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Pa /usr/share/doc/kyua/AUTHORS
|
|
||||||
List of authors (aka copyright holders).
|
|
||||||
.It Pa /usr/share/doc/kyua/CONTRIBUTORS
|
|
||||||
List of contributors (aka individuals that have contributed to the project).
|
|
||||||
.It Pa /usr/share/doc/kyua/LICENSE
|
|
||||||
License information.
|
|
||||||
.El
|
|
||||||
.Sh EXIT STATUS
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command always returns 0.
|
|
||||||
.Pp
|
|
||||||
Additional exit codes may be returned as described in
|
|
||||||
.Xr kyua 1 .
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua 1
|
|
@ -1,59 +0,0 @@
|
|||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 September 9, 2012
|
|
||||||
.Dt KYUA-CONFIG 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm "kyua config"
|
|
||||||
.Nd Inspects the values of the loaded configuration
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Op Ar variable1 .. variableN
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command provides a way to list all defined configuration variables and
|
|
||||||
their current values.
|
|
||||||
.Pp
|
|
||||||
This command is intended to help you in resolving the values of the
|
|
||||||
configuration variables without having to scan over configuration files.
|
|
||||||
.Pp
|
|
||||||
In the default synopsis form (no arguments), the command prints all
|
|
||||||
configuration variables.
|
|
||||||
If any arguments are provided, the command will only print the
|
|
||||||
requested variables.
|
|
||||||
.Sh EXIT STATUS
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command returns 0 on success or 1 if any of the specified configuration
|
|
||||||
variables does not exist.
|
|
||||||
.Pp
|
|
||||||
Additional exit codes may be returned as described in
|
|
||||||
.Xr kyua 1 .
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua 1
|
|
@ -1,199 +0,0 @@
|
|||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 October 13, 2014
|
|
||||||
.Dt KYUA-DB-EXEC 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm "kyua db-exec"
|
|
||||||
.Nd Executes a SQL statement in a results file
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Op Fl -no-headers
|
|
||||||
.Op Fl -results-file Ar file
|
|
||||||
.Ar statement
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command provides a way to execute an arbitrary SQL statement within the
|
|
||||||
database.
|
|
||||||
This command is mostly intended to aid in debugging, but can also be used to
|
|
||||||
extract information from the database when the current interfaces do not
|
|
||||||
provide the desired functionality.
|
|
||||||
.Pp
|
|
||||||
The input database must exist.
|
|
||||||
It makes no sense to use
|
|
||||||
.Nm
|
|
||||||
on a nonexistent or empty database.
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command takes one or more arguments, all of which are concatenated to form
|
|
||||||
a single SQL statement.
|
|
||||||
Once the statement is executed,
|
|
||||||
.Nm
|
|
||||||
prints the resulting table on the screen, if any.
|
|
||||||
.Pp
|
|
||||||
The following subcommand options are recognized:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Fl -no-headers
|
|
||||||
Avoids printing the headers of the table in the output of the command.
|
|
||||||
.It Fl -results-file Ar path , Fl s Ar path
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
Specifies the results file to operate on.
|
|
||||||
Defaults to
|
|
||||||
.Sq LATEST ,
|
|
||||||
which causes
|
|
||||||
.Nm
|
|
||||||
to automatically load the latest results file from the current test suite.
|
|
||||||
.Pp
|
|
||||||
The following values are accepted:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Sq LATEST
|
|
||||||
Requests the load of the latest results file available for the test suite rooted
|
|
||||||
at the current directory.
|
|
||||||
.It Directory
|
|
||||||
Requests the load of the latest results file available for the test suite rooted
|
|
||||||
at the given directory.
|
|
||||||
.It Test suite name
|
|
||||||
Requests the load of the latest results file available for the given test suite.
|
|
||||||
.It Results identifier
|
|
||||||
Requests the load of a specific results file.
|
|
||||||
.It Explicit file name (aka everything else)
|
|
||||||
Load the specified results file.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
See
|
|
||||||
.Sx Results files
|
|
||||||
for more details.
|
|
||||||
.El
|
|
||||||
.Ss Results files
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
Results files contain, as their name implies, the results of the execution of a
|
|
||||||
test suite.
|
|
||||||
Each test suite executed by
|
|
||||||
.Xr kyua-test 1
|
|
||||||
generates a new results file, and such results files can be loaded later on by
|
|
||||||
inspection commands such as
|
|
||||||
.Xr kyua-report 1
|
|
||||||
to analyze their contents.
|
|
||||||
.Pp
|
|
||||||
Results files support identifier-based lookups and also path name lookups.
|
|
||||||
The differences between the two are described below.
|
|
||||||
.Pp
|
|
||||||
The default naming scheme for the results files provides simple support for
|
|
||||||
identifier-based lookups and historical recording of test suite runs.
|
|
||||||
Each results file is given an identifier derived from the test suite that
|
|
||||||
generated it and the time the test suite was run.
|
|
||||||
Kyua can later look up results files by these fields.
|
|
||||||
.Pp
|
|
||||||
The identifier follows this pattern:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
\*(Lttest_suite\*(Gt.\*(LtYYYYMMDD\*(Gt-\*(LtHHMMSS\*(Gt-\*(Ltuuuuuu\*(Gt
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
where
|
|
||||||
.Sq test_suite
|
|
||||||
is the path to the root of the test suite that was run with all slashes replaced
|
|
||||||
by underscores and
|
|
||||||
.Sq YYYYMMDD-HHMMSS-uuuuuu
|
|
||||||
is a timestamp with microsecond resolution.
|
|
||||||
.Pp
|
|
||||||
When using the default naming scheme, results files are stored in the
|
|
||||||
.Pa ~/.kyua/store/
|
|
||||||
subdirectory and each file holds a name of the form:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
~/.kyua/store/results.\*(Ltidentifier\*(Gt.db
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Results files are simple SQLite databases with the schema described in the
|
|
||||||
.Pa /usr/share/kyua/store/schema_v?.sql
|
|
||||||
files.
|
|
||||||
For details on the schema, please refer to the heavily commented SQL file.
|
|
||||||
.Sh EXIT STATUS
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command returns 0 on success or 1 if the SQL statement is invalid or fails
|
|
||||||
to run.
|
|
||||||
.Pp
|
|
||||||
Additional exit codes may be returned as described in
|
|
||||||
.Xr kyua 1 .
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua 1 ,
|
|
||||||
.Xr kyua-test 1
|
|
@ -1,182 +0,0 @@
|
|||||||
.\" Copyright 2013 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 October 13, 2014
|
|
||||||
.Dt KYUA-DB-MIGRATE 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm "kyua db-migrate"
|
|
||||||
.Nd Upgrades the schema of an existing results file
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Op Fl -results-file Ar file
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command migrates the schema of an existing database to the latest
|
|
||||||
version implemented in
|
|
||||||
.Xr kyua 1 .
|
|
||||||
.Pp
|
|
||||||
This operation is not reversible.
|
|
||||||
However, a backup of the database is created in the same directory where the
|
|
||||||
database lives.
|
|
||||||
.Pp
|
|
||||||
The following subcommand options are recognized:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Fl -results-file Ar path , Fl s Ar path
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
Specifies the results file to operate on.
|
|
||||||
Defaults to
|
|
||||||
.Sq LATEST ,
|
|
||||||
which causes
|
|
||||||
.Nm
|
|
||||||
to automatically load the latest results file from the current test suite.
|
|
||||||
.Pp
|
|
||||||
The following values are accepted:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Sq LATEST
|
|
||||||
Requests the load of the latest results file available for the test suite rooted
|
|
||||||
at the current directory.
|
|
||||||
.It Directory
|
|
||||||
Requests the load of the latest results file available for the test suite rooted
|
|
||||||
at the given directory.
|
|
||||||
.It Test suite name
|
|
||||||
Requests the load of the latest results file available for the given test suite.
|
|
||||||
.It Results identifier
|
|
||||||
Requests the load of a specific results file.
|
|
||||||
.It Explicit file name (aka everything else)
|
|
||||||
Load the specified results file.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
See
|
|
||||||
.Sx Results files
|
|
||||||
for more details.
|
|
||||||
.El
|
|
||||||
.Ss Results files
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
Results files contain, as their name implies, the results of the execution of a
|
|
||||||
test suite.
|
|
||||||
Each test suite executed by
|
|
||||||
.Xr kyua-test 1
|
|
||||||
generates a new results file, and such results files can be loaded later on by
|
|
||||||
inspection commands such as
|
|
||||||
.Xr kyua-report 1
|
|
||||||
to analyze their contents.
|
|
||||||
.Pp
|
|
||||||
Results files support identifier-based lookups and also path name lookups.
|
|
||||||
The differences between the two are described below.
|
|
||||||
.Pp
|
|
||||||
The default naming scheme for the results files provides simple support for
|
|
||||||
identifier-based lookups and historical recording of test suite runs.
|
|
||||||
Each results file is given an identifier derived from the test suite that
|
|
||||||
generated it and the time the test suite was run.
|
|
||||||
Kyua can later look up results files by these fields.
|
|
||||||
.Pp
|
|
||||||
The identifier follows this pattern:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
\*(Lttest_suite\*(Gt.\*(LtYYYYMMDD\*(Gt-\*(LtHHMMSS\*(Gt-\*(Ltuuuuuu\*(Gt
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
where
|
|
||||||
.Sq test_suite
|
|
||||||
is the path to the root of the test suite that was run with all slashes replaced
|
|
||||||
by underscores and
|
|
||||||
.Sq YYYYMMDD-HHMMSS-uuuuuu
|
|
||||||
is a timestamp with microsecond resolution.
|
|
||||||
.Pp
|
|
||||||
When using the default naming scheme, results files are stored in the
|
|
||||||
.Pa ~/.kyua/store/
|
|
||||||
subdirectory and each file holds a name of the form:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
~/.kyua/store/results.\*(Ltidentifier\*(Gt.db
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Results files are simple SQLite databases with the schema described in the
|
|
||||||
.Pa /usr/share/kyua/store/schema_v?.sql
|
|
||||||
files.
|
|
||||||
For details on the schema, please refer to the heavily commented SQL file.
|
|
||||||
.Sh EXIT STATUS
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command returns 0 on success or 1 if the migration fails.
|
|
||||||
.Pp
|
|
||||||
Additional exit codes may be returned as described in
|
|
||||||
.Xr kyua 1 .
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua 1
|
|
@ -1,398 +0,0 @@
|
|||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 October 13, 2014
|
|
||||||
.Dt KYUA-DEBUG 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm "kyua debug"
|
|
||||||
.Nd Executes a single test case with facilities for debugging
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Op Fl -build-root Ar path
|
|
||||||
.Op Fl -kyuafile Ar file
|
|
||||||
.Op Fl -stdout Ar path
|
|
||||||
.Op Fl -stderr Ar path
|
|
||||||
.Ar test_case
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command provides a mechanism to execute a single test case bypassing some
|
|
||||||
of the Kyua infrastructure and allowing the user to poke into the execution
|
|
||||||
behavior of the test.
|
|
||||||
.Pp
|
|
||||||
The test case to run is selected by providing a test filter, described below in
|
|
||||||
.Sx Test filters ,
|
|
||||||
that matches a single test case.
|
|
||||||
The test case is executed and its result is printed as the last line of the
|
|
||||||
output of the tool.
|
|
||||||
.Pp
|
|
||||||
The test executed by
|
|
||||||
.Nm
|
|
||||||
is run under a controlled environment as described in
|
|
||||||
.Sx Test isolation .
|
|
||||||
.Pp
|
|
||||||
At the moment, the
|
|
||||||
.Nm
|
|
||||||
command allows the following aspects of a test case execution to be
|
|
||||||
tweaked:
|
|
||||||
.Bl -bullet
|
|
||||||
.It
|
|
||||||
Redirection of the test case's stdout and stderr to the console (the
|
|
||||||
default) or to arbitrary files.
|
|
||||||
See the
|
|
||||||
.Fl -stdout
|
|
||||||
and
|
|
||||||
.Fl -stderr
|
|
||||||
options below.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
The following subcommand options are recognized:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Fl -build-root Ar path
|
|
||||||
Specifies the build root in which to find the test programs referenced
|
|
||||||
by the Kyuafile, if different from the Kyuafile's directory.
|
|
||||||
See
|
|
||||||
.Sx Build directories
|
|
||||||
below for more information.
|
|
||||||
.It Fl -kyuafile Ar file , Fl k Ar file
|
|
||||||
Specifies the Kyuafile to process.
|
|
||||||
Defaults to
|
|
||||||
.Pa Kyuafile
|
|
||||||
file in the current directory.
|
|
||||||
.It Fl -stderr Ar path
|
|
||||||
Specifies the file to which to send the standard error of the test
|
|
||||||
program's body.
|
|
||||||
The default is
|
|
||||||
.Pa /dev/stderr ,
|
|
||||||
which is a special character device that redirects the output to
|
|
||||||
standard error on the console.
|
|
||||||
.It Fl -stdout Ar path
|
|
||||||
Specifies the file to which to send the standard output of the test
|
|
||||||
program's body.
|
|
||||||
The default is
|
|
||||||
.Pa /dev/stdout ,
|
|
||||||
which is a special character device that redirects the output to
|
|
||||||
standard output on the console.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
For example, consider the following Kyua session:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
$ kyua test
|
|
||||||
kernel/fs:mkdir -> passed
|
|
||||||
kernel/fs:rmdir -> failed: Invalid argument
|
|
||||||
|
|
||||||
1/2 passed (1 failed)
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
At this point, we do not have a lot of information regarding the
|
|
||||||
failure of the
|
|
||||||
.Sq kernel/fs:rmdir
|
|
||||||
test.
|
|
||||||
We can run this test through the
|
|
||||||
.Nm
|
|
||||||
command to inspect its output a bit closer, hoping that the test case is
|
|
||||||
kind enough to log its progress:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
$ kyua debug kernel/fs:rmdir
|
|
||||||
Trying rmdir('foo')
|
|
||||||
Trying rmdir(NULL)
|
|
||||||
kernel/fs:rmdir -> failed: Invalid argument
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Luckily, the offending test case was printing status lines as it
|
|
||||||
progressed, so we could see the last attempted call and we can know match
|
|
||||||
the failure message to the problem.
|
|
||||||
.Ss Build directories
|
|
||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
.Em Build directories
|
|
||||||
(or object directories, target directories, product directories, etc.) is
|
|
||||||
the concept that allows a developer to keep the source tree clean from
|
|
||||||
build products by asking the build system to place such build products
|
|
||||||
under a separate subtree.
|
|
||||||
.Pp
|
|
||||||
Most build systems today support build directories.
|
|
||||||
For example, the GNU Automake/Autoconf build system exposes such concept when
|
|
||||||
invoked as follows:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
$ cd my-project-1.0
|
|
||||||
$ mkdir build
|
|
||||||
$ cd build
|
|
||||||
$ ../configure
|
|
||||||
$ make
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Under such invocation, all the results of the build are left in the
|
|
||||||
.Pa my-project-1.0/build/
|
|
||||||
subdirectory while maintaining the contents of
|
|
||||||
.Pa my-project-1.0/
|
|
||||||
intact.
|
|
||||||
.Pp
|
|
||||||
Because build directories are an integral part of most build systems, and
|
|
||||||
because they are a tool that developers use frequently,
|
|
||||||
.Nm
|
|
||||||
supports build directories too.
|
|
||||||
This manifests in the form of
|
|
||||||
.Nm
|
|
||||||
being able to run tests from build directories while reading the (often
|
|
||||||
immutable) test suite definition from the source tree.
|
|
||||||
.Pp
|
|
||||||
One important property of build directories is that they follow (or need to
|
|
||||||
follow) the exact same layout as the source tree.
|
|
||||||
For example, consider the following directory listings:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
src/Kyuafile
|
|
||||||
src/bin/ls/
|
|
||||||
src/bin/ls/Kyuafile
|
|
||||||
src/bin/ls/ls.c
|
|
||||||
src/bin/ls/ls_test.c
|
|
||||||
src/sbin/su/
|
|
||||||
src/sbin/su/Kyuafile
|
|
||||||
src/sbin/su/su.c
|
|
||||||
src/sbin/su/su_test.c
|
|
||||||
|
|
||||||
obj/bin/ls/
|
|
||||||
obj/bin/ls/ls*
|
|
||||||
obj/bin/ls/ls_test*
|
|
||||||
obj/sbin/su/
|
|
||||||
obj/sbin/su/su*
|
|
||||||
obj/sbin/su/su_test*
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Note how the directory layout within
|
|
||||||
.Pa src/
|
|
||||||
matches that of
|
|
||||||
.Pa obj/ .
|
|
||||||
The
|
|
||||||
.Pa src/
|
|
||||||
directory contains only source files and the definition of the test suite
|
|
||||||
(the Kyuafiles), while the
|
|
||||||
.Pa obj/
|
|
||||||
directory contains only the binaries generated during a build.
|
|
||||||
.Pp
|
|
||||||
All commands that deal with the workspace support the
|
|
||||||
.Fl -build-root Ar path
|
|
||||||
option.
|
|
||||||
When this option is provided, the directory specified by the
|
|
||||||
option is considered to be the root of the build directory.
|
|
||||||
For example, considering our previous fake tree layout, we could invoke
|
|
||||||
.Nm
|
|
||||||
as any of the following:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
$ kyua debug --kyuafile=src/Kyuafile --build-root=obj
|
|
||||||
$ cd src && kyua debug --build-root=../obj
|
|
||||||
.Ed
|
|
||||||
.Ss Test filters
|
|
||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
A
|
|
||||||
.Em test filter
|
|
||||||
is a string that is used to match test cases or test programs in a test suite.
|
|
||||||
Filters have the following form:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
test_program_name[:test_case_name]
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Where
|
|
||||||
.Sq test_program_name
|
|
||||||
is the name of a test program or a subdirectory in the test suite, and
|
|
||||||
.Sq test_case_name
|
|
||||||
is the name of a test case.
|
|
||||||
.Ss Test isolation
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
The test programs and test cases run by
|
|
||||||
.Nm
|
|
||||||
are all executed in a deterministic environment.
|
|
||||||
This known, clean environment serves to make the test execution as
|
|
||||||
reproducible as possible and also to prevent clashes between tests that may,
|
|
||||||
for example, create auxiliary files with overlapping names.
|
|
||||||
.Pp
|
|
||||||
For plain test programs and for TAP test programs, the whole test program
|
|
||||||
is run under a single instance of the environment described in this page.
|
|
||||||
For ATF test programs (see
|
|
||||||
.Xr atf 7 ) ,
|
|
||||||
each individual test case
|
|
||||||
.Em and
|
|
||||||
test cleanup routine are executed in separate environments.
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Process space
|
|
||||||
Each test is executed in an independent processes.
|
|
||||||
Corollary: the test can do whatever it wants to the current process (such
|
|
||||||
as modify global variables) without having to undo such changes.
|
|
||||||
.It Session and process group
|
|
||||||
The test is executed in its own session and its own process group.
|
|
||||||
There is no controlling terminal attached to the session.
|
|
||||||
.Pp
|
|
||||||
Should the test spawn any children, the children should maintain the same
|
|
||||||
session and process group.
|
|
||||||
Modifying any of these settings prevents
|
|
||||||
.Nm
|
|
||||||
from being able to kill any stray subprocess as part of the cleanup phase.
|
|
||||||
If modifying these settings is necessary, or if any subprocess started by
|
|
||||||
the test decides to use a different process group or session, it is the
|
|
||||||
responsibility of the test to ensure those subprocesses are forcibly
|
|
||||||
terminated during cleanup.
|
|
||||||
.It Work directory
|
|
||||||
The test is executed in a temporary directory automatically created by the
|
|
||||||
runtime engine.
|
|
||||||
Corollary: the test can write to its current directory
|
|
||||||
without needing to clean any files and/or directories it creates.
|
|
||||||
The runtime engine takes care to recursively delete the temporary directories
|
|
||||||
after the execution of a test case.
|
|
||||||
Any file systems mounted within the temporary directory are also unmounted.
|
|
||||||
.It Home directory
|
|
||||||
The
|
|
||||||
.Va HOME
|
|
||||||
environment variable is set to the absolute path of the work directory.
|
|
||||||
.It Umask
|
|
||||||
The value of the umask is set to 0022.
|
|
||||||
.It Environment
|
|
||||||
The
|
|
||||||
.Va LANG ,
|
|
||||||
.Va LC_ALL ,
|
|
||||||
.Va LC_COLLATE ,
|
|
||||||
.Va LC_CTYPE ,
|
|
||||||
.Va LC_MESSAGES ,
|
|
||||||
.Va LC_MONETARY ,
|
|
||||||
.Va LC_NUMERIC
|
|
||||||
and
|
|
||||||
.Va LC_TIME
|
|
||||||
variables are unset.
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Va TZ
|
|
||||||
variable is set to
|
|
||||||
.Sq UTC .
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Va TMPDIR
|
|
||||||
variable is set to the absolute path of the work directory.
|
|
||||||
This is to prevent the test from mistakenly using a temporary directory
|
|
||||||
outside of the automatically-managed work directory, should the test use the
|
|
||||||
.Xr mktemp 3
|
|
||||||
familiy of functions.
|
|
||||||
.It Process limits
|
|
||||||
The maximum soft core size limit is raised to its corresponding hard limit.
|
|
||||||
This is a simple, best-effort attempt at allowing tests to dump core for
|
|
||||||
further diagnostic purposes.
|
|
||||||
.It Configuration varibles
|
|
||||||
The test engine may pass run-time configuration variables to the test program
|
|
||||||
via the environment.
|
|
||||||
The name of the configuration variable is prefixed with
|
|
||||||
.Sq TEST_ENV_
|
|
||||||
so that a configuration variable of the form
|
|
||||||
.Sq foo=bar
|
|
||||||
becomes accessible in the environment as
|
|
||||||
.Sq TEST_ENV_foo=bar .
|
|
||||||
.El
|
|
||||||
.Sh EXIT STATUS
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command returns 0 if the test case passes or 1 if the test case fails.
|
|
||||||
.Pp
|
|
||||||
Additional exit codes may be returned as described in
|
|
||||||
.Xr kyua 1 .
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua 1 ,
|
|
||||||
.Xr kyuafile 5
|
|
@ -1,64 +0,0 @@
|
|||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 September 9, 2012
|
|
||||||
.Dt KYUA-HELP 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm "kyua help"
|
|
||||||
.Nd Shows usage information
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Op Ar command
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command provides interactive help on all supported commands and options.
|
|
||||||
If, for some reason, you happen to spot a discrepancy in the output of this
|
|
||||||
command and this document, the command is the authoritative source of
|
|
||||||
information.
|
|
||||||
.Pp
|
|
||||||
If no arguments are provided, the command prints the list of common options
|
|
||||||
and the list of supported subcommands.
|
|
||||||
.Pp
|
|
||||||
If the
|
|
||||||
.Ar command
|
|
||||||
argument is provided to, this single argument is the name of a valid
|
|
||||||
subcommand.
|
|
||||||
In that case,
|
|
||||||
.Nm
|
|
||||||
prints a textual description of the command, the list of common options and
|
|
||||||
the list of subcommand-specific options.
|
|
||||||
.Sh EXIT STATUS
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command always returns 0.
|
|
||||||
.Pp
|
|
||||||
Additional exit codes may be returned as described in
|
|
||||||
.Xr kyua 1 .
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua 1
|
|
@ -1,232 +0,0 @@
|
|||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 October 13, 2014
|
|
||||||
.Dt KYUA-LIST 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm "kyua list"
|
|
||||||
.Nd Lists test cases and their metadata
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Op Fl -build-root Ar path
|
|
||||||
.Op Fl -kyuafile Ar file
|
|
||||||
.Op Fl -verbose
|
|
||||||
.Ar test_case1 Op Ar .. test_caseN
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command scans all the test programs and test cases in a test suite (as
|
|
||||||
defined by a
|
|
||||||
.Xr kyuafile 5 )
|
|
||||||
and prints a list of all their names, optionally accompanied by any metadata
|
|
||||||
properties they have.
|
|
||||||
.Pp
|
|
||||||
The optional arguments to
|
|
||||||
.Nm
|
|
||||||
are used to select which test programs or test cases to run.
|
|
||||||
These are filters and are described below in
|
|
||||||
.Sx Test filters .
|
|
||||||
.Pp
|
|
||||||
This command must be run within a test suite or a test suite must be
|
|
||||||
provided with the
|
|
||||||
.Fl -kyuafile
|
|
||||||
flag.
|
|
||||||
.Pp
|
|
||||||
The following subcommand options are recognized:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Fl -build-root Ar path
|
|
||||||
Specifies the build root in which to find the test programs referenced
|
|
||||||
by the Kyuafile, if different from the Kyuafile's directory.
|
|
||||||
See
|
|
||||||
.Sx Build directories
|
|
||||||
below for more information.
|
|
||||||
.It Fl -kyuafile Ar path , Fl k Ar path
|
|
||||||
Specifies the Kyuafile to process.
|
|
||||||
Defaults to a
|
|
||||||
.Pa Kyuafile
|
|
||||||
file in the current directory.
|
|
||||||
.It Fl -verbose , Fl v
|
|
||||||
Prints metadata properties for every test case.
|
|
||||||
.El
|
|
||||||
.Ss Build directories
|
|
||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
.Em Build directories
|
|
||||||
(or object directories, target directories, product directories, etc.) is
|
|
||||||
the concept that allows a developer to keep the source tree clean from
|
|
||||||
build products by asking the build system to place such build products
|
|
||||||
under a separate subtree.
|
|
||||||
.Pp
|
|
||||||
Most build systems today support build directories.
|
|
||||||
For example, the GNU Automake/Autoconf build system exposes such concept when
|
|
||||||
invoked as follows:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
$ cd my-project-1.0
|
|
||||||
$ mkdir build
|
|
||||||
$ cd build
|
|
||||||
$ ../configure
|
|
||||||
$ make
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Under such invocation, all the results of the build are left in the
|
|
||||||
.Pa my-project-1.0/build/
|
|
||||||
subdirectory while maintaining the contents of
|
|
||||||
.Pa my-project-1.0/
|
|
||||||
intact.
|
|
||||||
.Pp
|
|
||||||
Because build directories are an integral part of most build systems, and
|
|
||||||
because they are a tool that developers use frequently,
|
|
||||||
.Nm
|
|
||||||
supports build directories too.
|
|
||||||
This manifests in the form of
|
|
||||||
.Nm
|
|
||||||
being able to run tests from build directories while reading the (often
|
|
||||||
immutable) test suite definition from the source tree.
|
|
||||||
.Pp
|
|
||||||
One important property of build directories is that they follow (or need to
|
|
||||||
follow) the exact same layout as the source tree.
|
|
||||||
For example, consider the following directory listings:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
src/Kyuafile
|
|
||||||
src/bin/ls/
|
|
||||||
src/bin/ls/Kyuafile
|
|
||||||
src/bin/ls/ls.c
|
|
||||||
src/bin/ls/ls_test.c
|
|
||||||
src/sbin/su/
|
|
||||||
src/sbin/su/Kyuafile
|
|
||||||
src/sbin/su/su.c
|
|
||||||
src/sbin/su/su_test.c
|
|
||||||
|
|
||||||
obj/bin/ls/
|
|
||||||
obj/bin/ls/ls*
|
|
||||||
obj/bin/ls/ls_test*
|
|
||||||
obj/sbin/su/
|
|
||||||
obj/sbin/su/su*
|
|
||||||
obj/sbin/su/su_test*
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Note how the directory layout within
|
|
||||||
.Pa src/
|
|
||||||
matches that of
|
|
||||||
.Pa obj/ .
|
|
||||||
The
|
|
||||||
.Pa src/
|
|
||||||
directory contains only source files and the definition of the test suite
|
|
||||||
(the Kyuafiles), while the
|
|
||||||
.Pa obj/
|
|
||||||
directory contains only the binaries generated during a build.
|
|
||||||
.Pp
|
|
||||||
All commands that deal with the workspace support the
|
|
||||||
.Fl -build-root Ar path
|
|
||||||
option.
|
|
||||||
When this option is provided, the directory specified by the
|
|
||||||
option is considered to be the root of the build directory.
|
|
||||||
For example, considering our previous fake tree layout, we could invoke
|
|
||||||
.Nm
|
|
||||||
as any of the following:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
$ kyua list --kyuafile=src/Kyuafile --build-root=obj
|
|
||||||
$ cd src && kyua list --build-root=../obj
|
|
||||||
.Ed
|
|
||||||
.Ss Test filters
|
|
||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
A
|
|
||||||
.Em test filter
|
|
||||||
is a string that is used to match test cases or test programs in a test suite.
|
|
||||||
Filters have the following form:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
test_program_name[:test_case_name]
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Where
|
|
||||||
.Sq test_program_name
|
|
||||||
is the name of a test program or a subdirectory in the test suite, and
|
|
||||||
.Sq test_case_name
|
|
||||||
is the name of a test case.
|
|
||||||
.Sh EXIT STATUS
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command returns 0 on success or 1 if any of the given test case filters
|
|
||||||
does not match any test case.
|
|
||||||
.Pp
|
|
||||||
Additional exit codes may be returned as described in
|
|
||||||
.Xr kyua 1 .
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua 1 ,
|
|
||||||
.Xr kyuafile 5
|
|
@ -1,253 +0,0 @@
|
|||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 October 13, 2014
|
|
||||||
.Dt KYUA-REPORT-HTML 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm "kyua report-html"
|
|
||||||
.Nd Generates an HTML report with the results of a test suite run
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Op Fl -force
|
|
||||||
.Op Fl -output Ar path
|
|
||||||
.Op Fl -results-file Ar file
|
|
||||||
.Op Fl -results-filter Ar types
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command provides a simple mechanism to generate HTML reports of the
|
|
||||||
execution of a test suite.
|
|
||||||
The command processes a results file and then populates a directory with
|
|
||||||
multiple HTML and supporting files to describe the results recorded in that
|
|
||||||
results file.
|
|
||||||
.Pp
|
|
||||||
The HTML output is static and self-contained, so it can easily be served by
|
|
||||||
any simple web server.
|
|
||||||
The command expects the target directory to not exist, because it would
|
|
||||||
overwrite any contents if not careful.
|
|
||||||
.Pp
|
|
||||||
The following subcommand options are recognized:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Fl -force
|
|
||||||
Forces the deletion of the output directory if it exists.
|
|
||||||
Use care, as this effectively means a
|
|
||||||
.Sq rm -rf .
|
|
||||||
.It Fl -output Ar directory
|
|
||||||
Specifies the target directory into which to generate the HTML files.
|
|
||||||
The directory must not exist unless the
|
|
||||||
.Fl -force
|
|
||||||
option is provided.
|
|
||||||
The default is
|
|
||||||
.Pa ./html .
|
|
||||||
.It Fl -results-file Ar path , Fl s Ar path
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
Specifies the results file to operate on.
|
|
||||||
Defaults to
|
|
||||||
.Sq LATEST ,
|
|
||||||
which causes
|
|
||||||
.Nm
|
|
||||||
to automatically load the latest results file from the current test suite.
|
|
||||||
.Pp
|
|
||||||
The following values are accepted:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Sq LATEST
|
|
||||||
Requests the load of the latest results file available for the test suite rooted
|
|
||||||
at the current directory.
|
|
||||||
.It Directory
|
|
||||||
Requests the load of the latest results file available for the test suite rooted
|
|
||||||
at the given directory.
|
|
||||||
.It Test suite name
|
|
||||||
Requests the load of the latest results file available for the given test suite.
|
|
||||||
.It Results identifier
|
|
||||||
Requests the load of a specific results file.
|
|
||||||
.It Explicit file name (aka everything else)
|
|
||||||
Load the specified results file.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
See
|
|
||||||
.Sx Results files
|
|
||||||
for more details.
|
|
||||||
.It Fl -results-filter Ar types
|
|
||||||
Comma-separated list of the test result types to include in the report.
|
|
||||||
The ordering of the values is respected so that you can determine how you
|
|
||||||
want the list of tests to be shown.
|
|
||||||
.Pp
|
|
||||||
The valid values are:
|
|
||||||
.Sq broken ,
|
|
||||||
.Sq failed ,
|
|
||||||
.Sq passed ,
|
|
||||||
.Sq skipped
|
|
||||||
and
|
|
||||||
.Sq xfail .
|
|
||||||
If the parameter supplied to the option is empty, filtering is suppressed
|
|
||||||
and all result types are shown in the report.
|
|
||||||
.Pp
|
|
||||||
The default value for this flag includes all the test results except the
|
|
||||||
passed tests.
|
|
||||||
Showing the passed tests by default clutters the report with too much
|
|
||||||
information, so only abnormal conditions are included.
|
|
||||||
.El
|
|
||||||
.Ss Results files
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
Results files contain, as their name implies, the results of the execution of a
|
|
||||||
test suite.
|
|
||||||
Each test suite executed by
|
|
||||||
.Xr kyua-test 1
|
|
||||||
generates a new results file, and such results files can be loaded later on by
|
|
||||||
inspection commands such as
|
|
||||||
.Xr kyua-report 1
|
|
||||||
to analyze their contents.
|
|
||||||
.Pp
|
|
||||||
Results files support identifier-based lookups and also path name lookups.
|
|
||||||
The differences between the two are described below.
|
|
||||||
.Pp
|
|
||||||
The default naming scheme for the results files provides simple support for
|
|
||||||
identifier-based lookups and historical recording of test suite runs.
|
|
||||||
Each results file is given an identifier derived from the test suite that
|
|
||||||
generated it and the time the test suite was run.
|
|
||||||
Kyua can later look up results files by these fields.
|
|
||||||
.Pp
|
|
||||||
The identifier follows this pattern:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
\*(Lttest_suite\*(Gt.\*(LtYYYYMMDD\*(Gt-\*(LtHHMMSS\*(Gt-\*(Ltuuuuuu\*(Gt
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
where
|
|
||||||
.Sq test_suite
|
|
||||||
is the path to the root of the test suite that was run with all slashes replaced
|
|
||||||
by underscores and
|
|
||||||
.Sq YYYYMMDD-HHMMSS-uuuuuu
|
|
||||||
is a timestamp with microsecond resolution.
|
|
||||||
.Pp
|
|
||||||
When using the default naming scheme, results files are stored in the
|
|
||||||
.Pa ~/.kyua/store/
|
|
||||||
subdirectory and each file holds a name of the form:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
~/.kyua/store/results.\*(Ltidentifier\*(Gt.db
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Results files are simple SQLite databases with the schema described in the
|
|
||||||
.Pa /usr/share/kyua/store/schema_v?.sql
|
|
||||||
files.
|
|
||||||
For details on the schema, please refer to the heavily commented SQL file.
|
|
||||||
.Sh EXIT STATUS
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command always returns 0.
|
|
||||||
.Pp
|
|
||||||
Additional exit codes may be returned as described in
|
|
||||||
.Xr kyua 1 .
|
|
||||||
.Sh EXAMPLES
|
|
||||||
.Ss Workflow with results files
|
|
||||||
If one runs the following command twice in a row:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
kyua test -k /usr/tests/Kyuafile
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
the two executions will generate two different files with names like:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
~/.kyua/store/results.usr_tests.20140731-150500-196784.db
|
|
||||||
~/.kyua/store/results.usr_tests.20140731-151730-997451.db
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Taking advantage of the default naming scheme, the following commands would all
|
|
||||||
generate a report for the results of the
|
|
||||||
.Em latest
|
|
||||||
execution of the test suite:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
cd /usr/tests && kyua report-html
|
|
||||||
cd /usr/tests && kyua report-html --results-file=LATEST
|
|
||||||
kyua report-html --results-file=/usr/tests
|
|
||||||
kyua report-html --results-file=usr_tests
|
|
||||||
kyua report-html --results-file=usr_tests.20140731-151730-997451
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
But it is also possible to explicitly load data for older runs or from
|
|
||||||
explicitly-named files:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
kyua report-html \\
|
|
||||||
--results-file=usr_tests.20140731-150500-196784
|
|
||||||
kyua report-html \\
|
|
||||||
--results-file=~/.kyua/store/results.usr_tests.20140731-150500-196784.db
|
|
||||||
.Ed
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua 1 ,
|
|
||||||
.Xr kyua-report 1 ,
|
|
||||||
.Xr kyua-report-junit 1
|
|
@ -1,237 +0,0 @@
|
|||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 October 13, 2014
|
|
||||||
.Dt KYUA-REPORT-JUNIT 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm "kyua report-junit"
|
|
||||||
.Nd Generates a JUnit report with the results of a test suite run
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Op Fl -output Ar path
|
|
||||||
.Op Fl -results-file Ar file
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command provides a simple mechanism to generate JUnit reports of the
|
|
||||||
execution of a test suite.
|
|
||||||
The command processes a results file and then generates a single XML file
|
|
||||||
that complies with the JUnit XSchema.
|
|
||||||
.Pp
|
|
||||||
The JUnit output is static and self-contained, so it can easily be plugged
|
|
||||||
into any continuous integration system, like Jenkins.
|
|
||||||
.Pp
|
|
||||||
The following subcommand options are recognized:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Fl -output Ar directory
|
|
||||||
Specifies the file into which to store the JUnit report.
|
|
||||||
.It Fl -results-file Ar path , Fl s Ar path
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
Specifies the results file to operate on.
|
|
||||||
Defaults to
|
|
||||||
.Sq LATEST ,
|
|
||||||
which causes
|
|
||||||
.Nm
|
|
||||||
to automatically load the latest results file from the current test suite.
|
|
||||||
.Pp
|
|
||||||
The following values are accepted:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Sq LATEST
|
|
||||||
Requests the load of the latest results file available for the test suite rooted
|
|
||||||
at the current directory.
|
|
||||||
.It Directory
|
|
||||||
Requests the load of the latest results file available for the test suite rooted
|
|
||||||
at the given directory.
|
|
||||||
.It Test suite name
|
|
||||||
Requests the load of the latest results file available for the given test suite.
|
|
||||||
.It Results identifier
|
|
||||||
Requests the load of a specific results file.
|
|
||||||
.It Explicit file name (aka everything else)
|
|
||||||
Load the specified results file.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
See
|
|
||||||
.Sx Results files
|
|
||||||
for more details.
|
|
||||||
.El
|
|
||||||
.Ss Caveats
|
|
||||||
Because of limitations in the JUnit XML schema, not all the data collected by
|
|
||||||
Kyua can be properly represented in JUnit reports.
|
|
||||||
However, because test data are extremely useful for debugging purposes, the
|
|
||||||
.Nm
|
|
||||||
command shovels these data into the JUnit output.
|
|
||||||
In particular:
|
|
||||||
.Bl -bullet
|
|
||||||
.It
|
|
||||||
The test case metadata values are prepended to the test case's standard error
|
|
||||||
output.
|
|
||||||
.It
|
|
||||||
Test cases that report expected failures as their results are recorded as
|
|
||||||
passed.
|
|
||||||
The fact that they failed as expected is recorded in the test case's standard
|
|
||||||
error output along with the corresponding reason.
|
|
||||||
.El
|
|
||||||
.Ss Results files
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
Results files contain, as their name implies, the results of the execution of a
|
|
||||||
test suite.
|
|
||||||
Each test suite executed by
|
|
||||||
.Xr kyua-test 1
|
|
||||||
generates a new results file, and such results files can be loaded later on by
|
|
||||||
inspection commands such as
|
|
||||||
.Xr kyua-report 1
|
|
||||||
to analyze their contents.
|
|
||||||
.Pp
|
|
||||||
Results files support identifier-based lookups and also path name lookups.
|
|
||||||
The differences between the two are described below.
|
|
||||||
.Pp
|
|
||||||
The default naming scheme for the results files provides simple support for
|
|
||||||
identifier-based lookups and historical recording of test suite runs.
|
|
||||||
Each results file is given an identifier derived from the test suite that
|
|
||||||
generated it and the time the test suite was run.
|
|
||||||
Kyua can later look up results files by these fields.
|
|
||||||
.Pp
|
|
||||||
The identifier follows this pattern:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
\*(Lttest_suite\*(Gt.\*(LtYYYYMMDD\*(Gt-\*(LtHHMMSS\*(Gt-\*(Ltuuuuuu\*(Gt
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
where
|
|
||||||
.Sq test_suite
|
|
||||||
is the path to the root of the test suite that was run with all slashes replaced
|
|
||||||
by underscores and
|
|
||||||
.Sq YYYYMMDD-HHMMSS-uuuuuu
|
|
||||||
is a timestamp with microsecond resolution.
|
|
||||||
.Pp
|
|
||||||
When using the default naming scheme, results files are stored in the
|
|
||||||
.Pa ~/.kyua/store/
|
|
||||||
subdirectory and each file holds a name of the form:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
~/.kyua/store/results.\*(Ltidentifier\*(Gt.db
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Results files are simple SQLite databases with the schema described in the
|
|
||||||
.Pa /usr/share/kyua/store/schema_v?.sql
|
|
||||||
files.
|
|
||||||
For details on the schema, please refer to the heavily commented SQL file.
|
|
||||||
.Sh EXIT STATUS
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command always returns 0.
|
|
||||||
.Pp
|
|
||||||
Additional exit codes may be returned as described in
|
|
||||||
.Xr kyua 1 .
|
|
||||||
.Sh EXAMPLES
|
|
||||||
.Ss Workflow with results files
|
|
||||||
If one runs the following command twice in a row:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
kyua test -k /usr/tests/Kyuafile
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
the two executions will generate two different files with names like:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
~/.kyua/store/results.usr_tests.20140731-150500-196784.db
|
|
||||||
~/.kyua/store/results.usr_tests.20140731-151730-997451.db
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Taking advantage of the default naming scheme, the following commands would all
|
|
||||||
generate a report for the results of the
|
|
||||||
.Em latest
|
|
||||||
execution of the test suite:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
cd /usr/tests && kyua report-junit
|
|
||||||
cd /usr/tests && kyua report-junit --results-file=LATEST
|
|
||||||
kyua report-junit --results-file=/usr/tests
|
|
||||||
kyua report-junit --results-file=usr_tests
|
|
||||||
kyua report-junit --results-file=usr_tests.20140731-151730-997451
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
But it is also possible to explicitly load data for older runs or from
|
|
||||||
explicitly-named files:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
kyua report-junit \\
|
|
||||||
--results-file=usr_tests.20140731-150500-196784
|
|
||||||
kyua report-junit \\
|
|
||||||
--results-file=~/.kyua/store/results.usr_tests.20140731-150500-196784.db
|
|
||||||
.Ed
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua 1 ,
|
|
||||||
.Xr kyua-report 1 ,
|
|
||||||
.Xr kyua-report-html 1
|
|
@ -1,307 +0,0 @@
|
|||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 October 13, 2014
|
|
||||||
.Dt KYUA-REPORT 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm "kyua report"
|
|
||||||
.Nd Generates reports with the results of a test suite run
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Op Fl -output Ar path
|
|
||||||
.Op Fl -results-file Ar file
|
|
||||||
.Op Fl -results-filter Ar types
|
|
||||||
.Op Fl -verbose
|
|
||||||
.Op Ar test_filter1 .. test_filterN
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command parses a results file and generates a user-friendly, plaintext
|
|
||||||
report for user consumption on the terminal.
|
|
||||||
By default, these reports only display a summary of the execution of the full
|
|
||||||
test suite to highlight where problems may lie.
|
|
||||||
.Pp
|
|
||||||
The output of
|
|
||||||
.Nm
|
|
||||||
can be customized to display full details on all executed test cases.
|
|
||||||
Additionally, the optional arguments to
|
|
||||||
.Nm
|
|
||||||
are used to select which test programs or test cases to display.
|
|
||||||
These are filters and are described below in
|
|
||||||
.Sx Test filters .
|
|
||||||
.Pp
|
|
||||||
Reports generated by
|
|
||||||
.Nm
|
|
||||||
are
|
|
||||||
.Em not intended to be machine-parseable .
|
|
||||||
.Pp
|
|
||||||
The following subcommand options are recognized:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Fl -output Ar path
|
|
||||||
Specifies the path to which the report should be written to.
|
|
||||||
The special values
|
|
||||||
.Pa /dev/stdout
|
|
||||||
and
|
|
||||||
.Pa /dev/stderr
|
|
||||||
can be used to specify the standard output and the standard error,
|
|
||||||
respectively.
|
|
||||||
.It Fl -results-file Ar path , Fl s Ar path
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
Specifies the results file to operate on.
|
|
||||||
Defaults to
|
|
||||||
.Sq LATEST ,
|
|
||||||
which causes
|
|
||||||
.Nm
|
|
||||||
to automatically load the latest results file from the current test suite.
|
|
||||||
.Pp
|
|
||||||
The following values are accepted:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Sq LATEST
|
|
||||||
Requests the load of the latest results file available for the test suite rooted
|
|
||||||
at the current directory.
|
|
||||||
.It Directory
|
|
||||||
Requests the load of the latest results file available for the test suite rooted
|
|
||||||
at the given directory.
|
|
||||||
.It Test suite name
|
|
||||||
Requests the load of the latest results file available for the given test suite.
|
|
||||||
.It Results identifier
|
|
||||||
Requests the load of a specific results file.
|
|
||||||
.It Explicit file name (aka everything else)
|
|
||||||
Load the specified results file.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
See
|
|
||||||
.Sx Results files
|
|
||||||
for more details.
|
|
||||||
.It Fl -results-filter Ar types
|
|
||||||
Comma-separated list of the test result types to include in the report.
|
|
||||||
The ordering of the values is respected so that you can determine how you
|
|
||||||
want the list of tests to be shown.
|
|
||||||
.Pp
|
|
||||||
The valid values are:
|
|
||||||
.Sq broken ,
|
|
||||||
.Sq failed ,
|
|
||||||
.Sq passed ,
|
|
||||||
.Sq skipped
|
|
||||||
and
|
|
||||||
.Sq xfail .
|
|
||||||
If the parameter supplied to the option is empty, filtering is suppressed
|
|
||||||
and all result types are shown in the report.
|
|
||||||
.Pp
|
|
||||||
The default value for this flag includes all the test results except the
|
|
||||||
passed tests.
|
|
||||||
Showing the passed tests by default clutters the report with too much
|
|
||||||
information, so only abnormal conditions are included.
|
|
||||||
.It Fl -verbose
|
|
||||||
Prints a detailed report of the execution.
|
|
||||||
In addition to all the information printed by default, verbose reports
|
|
||||||
include the runtime context of the test suite run, the metadata of each
|
|
||||||
test case, and the verbatim output of the test cases.
|
|
||||||
.El
|
|
||||||
.Ss Results files
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
Results files contain, as their name implies, the results of the execution of a
|
|
||||||
test suite.
|
|
||||||
Each test suite executed by
|
|
||||||
.Xr kyua-test 1
|
|
||||||
generates a new results file, and such results files can be loaded later on by
|
|
||||||
inspection commands such as
|
|
||||||
.Xr kyua-report 1
|
|
||||||
to analyze their contents.
|
|
||||||
.Pp
|
|
||||||
Results files support identifier-based lookups and also path name lookups.
|
|
||||||
The differences between the two are described below.
|
|
||||||
.Pp
|
|
||||||
The default naming scheme for the results files provides simple support for
|
|
||||||
identifier-based lookups and historical recording of test suite runs.
|
|
||||||
Each results file is given an identifier derived from the test suite that
|
|
||||||
generated it and the time the test suite was run.
|
|
||||||
Kyua can later look up results files by these fields.
|
|
||||||
.Pp
|
|
||||||
The identifier follows this pattern:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
\*(Lttest_suite\*(Gt.\*(LtYYYYMMDD\*(Gt-\*(LtHHMMSS\*(Gt-\*(Ltuuuuuu\*(Gt
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
where
|
|
||||||
.Sq test_suite
|
|
||||||
is the path to the root of the test suite that was run with all slashes replaced
|
|
||||||
by underscores and
|
|
||||||
.Sq YYYYMMDD-HHMMSS-uuuuuu
|
|
||||||
is a timestamp with microsecond resolution.
|
|
||||||
.Pp
|
|
||||||
When using the default naming scheme, results files are stored in the
|
|
||||||
.Pa ~/.kyua/store/
|
|
||||||
subdirectory and each file holds a name of the form:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
~/.kyua/store/results.\*(Ltidentifier\*(Gt.db
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Results files are simple SQLite databases with the schema described in the
|
|
||||||
.Pa /usr/share/kyua/store/schema_v?.sql
|
|
||||||
files.
|
|
||||||
For details on the schema, please refer to the heavily commented SQL file.
|
|
||||||
.Ss Test filters
|
|
||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
A
|
|
||||||
.Em test filter
|
|
||||||
is a string that is used to match test cases or test programs in a test suite.
|
|
||||||
Filters have the following form:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
test_program_name[:test_case_name]
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Where
|
|
||||||
.Sq test_program_name
|
|
||||||
is the name of a test program or a subdirectory in the test suite, and
|
|
||||||
.Sq test_case_name
|
|
||||||
is the name of a test case.
|
|
||||||
.Sh EXIT STATUS
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command returns 0 if no filters were specified or if all filters match one
|
|
||||||
or more test cases.
|
|
||||||
If any filter fails to match any test case, the command returns 1.
|
|
||||||
.Pp
|
|
||||||
Additional exit codes may be returned as described in
|
|
||||||
.Xr kyua 1 .
|
|
||||||
.Sh EXAMPLES
|
|
||||||
.Ss Workflow with results files
|
|
||||||
If one runs the following command twice in a row:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
kyua test -k /usr/tests/Kyuafile
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
the two executions will generate two different files with names like:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
~/.kyua/store/results.usr_tests.20140731-150500-196784.db
|
|
||||||
~/.kyua/store/results.usr_tests.20140731-151730-997451.db
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Taking advantage of the default naming scheme, the following commands would all
|
|
||||||
generate a report for the results of the
|
|
||||||
.Em latest
|
|
||||||
execution of the test suite:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
cd /usr/tests && kyua report
|
|
||||||
cd /usr/tests && kyua report --results-file=LATEST
|
|
||||||
kyua report --results-file=/usr/tests
|
|
||||||
kyua report --results-file=usr_tests
|
|
||||||
kyua report --results-file=usr_tests.20140731-151730-997451
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
But it is also possible to explicitly load data for older runs or from
|
|
||||||
explicitly-named files:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
kyua report \\
|
|
||||||
--results-file=usr_tests.20140731-150500-196784
|
|
||||||
kyua report \\
|
|
||||||
--results-file=~/.kyua/store/results.usr_tests.20140731-150500-196784.db
|
|
||||||
.Ed
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua 1 ,
|
|
||||||
.Xr kyua-report-html 1 ,
|
|
||||||
.Xr kyua-report-junit 1
|
|
@ -1,498 +0,0 @@
|
|||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 October 13, 2014
|
|
||||||
.Dt KYUA-TEST 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm "kyua test"
|
|
||||||
.Nd Runs tests
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Op Fl -build-root Ar path
|
|
||||||
.Op Fl -kyuafile Ar file
|
|
||||||
.Op Fl -results-file Ar file
|
|
||||||
.Op Ar test_filter1 .. test_filterN
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command loads a test suite definition from a
|
|
||||||
.Xr kyuafile 5 ,
|
|
||||||
runs the tests defined in it, and records the results into a new results
|
|
||||||
file.
|
|
||||||
By default, all tests in the test suite are executed but the optional
|
|
||||||
arguments to
|
|
||||||
.Nm
|
|
||||||
can be used to select which test programs or test cases to run.
|
|
||||||
These are filters and are described below in
|
|
||||||
.Sx Test filters .
|
|
||||||
.Pp
|
|
||||||
Every test executed by
|
|
||||||
.Nm
|
|
||||||
is run under a controlled environment as described in
|
|
||||||
.Sx Test isolation .
|
|
||||||
.Pp
|
|
||||||
The following subcommand options are recognized:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Fl -build-root Ar path
|
|
||||||
Specifies the build root in which to find the test programs referenced by
|
|
||||||
the Kyuafile, if different from the Kyuafile's directory.
|
|
||||||
See
|
|
||||||
.Sx Build directories
|
|
||||||
below for more information.
|
|
||||||
.It Fl -kyuafile Ar path , Fl k Ar path
|
|
||||||
Specifies the Kyuafile to process.
|
|
||||||
Defaults to a
|
|
||||||
.Pa Kyuafile
|
|
||||||
file in the current directory.
|
|
||||||
.It Fl -results-file Ar path , Fl s Ar path
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
Specifies the results file to create.
|
|
||||||
Defaults to
|
|
||||||
.Sq LATEST ,
|
|
||||||
which causes
|
|
||||||
.Nm
|
|
||||||
to automatically generate a new results file for the test run.
|
|
||||||
.Pp
|
|
||||||
The following values are accepted:
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Sq NEW
|
|
||||||
Requests the automatic generation of a new results filename based on the test
|
|
||||||
suite being run and the current time.
|
|
||||||
.It Explicit filename (aka everything else)
|
|
||||||
Store the results file where indicated.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
See
|
|
||||||
.Sx Results files
|
|
||||||
for more details.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
You can later inspect the results of the test run in more detail by using
|
|
||||||
.Xr kyua-report 1
|
|
||||||
or you can execute a single test case with debugging functionality by using
|
|
||||||
.Xr kyua-debug 1 .
|
|
||||||
.Ss Build directories
|
|
||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
.Em Build directories
|
|
||||||
(or object directories, target directories, product directories, etc.) is
|
|
||||||
the concept that allows a developer to keep the source tree clean from
|
|
||||||
build products by asking the build system to place such build products
|
|
||||||
under a separate subtree.
|
|
||||||
.Pp
|
|
||||||
Most build systems today support build directories.
|
|
||||||
For example, the GNU Automake/Autoconf build system exposes such concept when
|
|
||||||
invoked as follows:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
$ cd my-project-1.0
|
|
||||||
$ mkdir build
|
|
||||||
$ cd build
|
|
||||||
$ ../configure
|
|
||||||
$ make
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Under such invocation, all the results of the build are left in the
|
|
||||||
.Pa my-project-1.0/build/
|
|
||||||
subdirectory while maintaining the contents of
|
|
||||||
.Pa my-project-1.0/
|
|
||||||
intact.
|
|
||||||
.Pp
|
|
||||||
Because build directories are an integral part of most build systems, and
|
|
||||||
because they are a tool that developers use frequently,
|
|
||||||
.Nm
|
|
||||||
supports build directories too.
|
|
||||||
This manifests in the form of
|
|
||||||
.Nm
|
|
||||||
being able to run tests from build directories while reading the (often
|
|
||||||
immutable) test suite definition from the source tree.
|
|
||||||
.Pp
|
|
||||||
One important property of build directories is that they follow (or need to
|
|
||||||
follow) the exact same layout as the source tree.
|
|
||||||
For example, consider the following directory listings:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
src/Kyuafile
|
|
||||||
src/bin/ls/
|
|
||||||
src/bin/ls/Kyuafile
|
|
||||||
src/bin/ls/ls.c
|
|
||||||
src/bin/ls/ls_test.c
|
|
||||||
src/sbin/su/
|
|
||||||
src/sbin/su/Kyuafile
|
|
||||||
src/sbin/su/su.c
|
|
||||||
src/sbin/su/su_test.c
|
|
||||||
|
|
||||||
obj/bin/ls/
|
|
||||||
obj/bin/ls/ls*
|
|
||||||
obj/bin/ls/ls_test*
|
|
||||||
obj/sbin/su/
|
|
||||||
obj/sbin/su/su*
|
|
||||||
obj/sbin/su/su_test*
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Note how the directory layout within
|
|
||||||
.Pa src/
|
|
||||||
matches that of
|
|
||||||
.Pa obj/ .
|
|
||||||
The
|
|
||||||
.Pa src/
|
|
||||||
directory contains only source files and the definition of the test suite
|
|
||||||
(the Kyuafiles), while the
|
|
||||||
.Pa obj/
|
|
||||||
directory contains only the binaries generated during a build.
|
|
||||||
.Pp
|
|
||||||
All commands that deal with the workspace support the
|
|
||||||
.Fl -build-root Ar path
|
|
||||||
option.
|
|
||||||
When this option is provided, the directory specified by the
|
|
||||||
option is considered to be the root of the build directory.
|
|
||||||
For example, considering our previous fake tree layout, we could invoke
|
|
||||||
.Nm
|
|
||||||
as any of the following:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
$ kyua test --kyuafile=src/Kyuafile --build-root=obj
|
|
||||||
$ cd src && kyua test --build-root=../obj
|
|
||||||
.Ed
|
|
||||||
.Ss Results files
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
Results files contain, as their name implies, the results of the execution of a
|
|
||||||
test suite.
|
|
||||||
Each test suite executed by
|
|
||||||
.Xr kyua-test 1
|
|
||||||
generates a new results file, and such results files can be loaded later on by
|
|
||||||
inspection commands such as
|
|
||||||
.Xr kyua-report 1
|
|
||||||
to analyze their contents.
|
|
||||||
.Pp
|
|
||||||
Results files support identifier-based lookups and also path name lookups.
|
|
||||||
The differences between the two are described below.
|
|
||||||
.Pp
|
|
||||||
The default naming scheme for the results files provides simple support for
|
|
||||||
identifier-based lookups and historical recording of test suite runs.
|
|
||||||
Each results file is given an identifier derived from the test suite that
|
|
||||||
generated it and the time the test suite was run.
|
|
||||||
Kyua can later look up results files by these fields.
|
|
||||||
.Pp
|
|
||||||
The identifier follows this pattern:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
\*(Lttest_suite\*(Gt.\*(LtYYYYMMDD\*(Gt-\*(LtHHMMSS\*(Gt-\*(Ltuuuuuu\*(Gt
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
where
|
|
||||||
.Sq test_suite
|
|
||||||
is the path to the root of the test suite that was run with all slashes replaced
|
|
||||||
by underscores and
|
|
||||||
.Sq YYYYMMDD-HHMMSS-uuuuuu
|
|
||||||
is a timestamp with microsecond resolution.
|
|
||||||
.Pp
|
|
||||||
When using the default naming scheme, results files are stored in the
|
|
||||||
.Pa ~/.kyua/store/
|
|
||||||
subdirectory and each file holds a name of the form:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
~/.kyua/store/results.\*(Ltidentifier\*(Gt.db
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Results files are simple SQLite databases with the schema described in the
|
|
||||||
.Pa /usr/share/kyua/store/schema_v?.sql
|
|
||||||
files.
|
|
||||||
For details on the schema, please refer to the heavily commented SQL file.
|
|
||||||
.Ss Test filters
|
|
||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
A
|
|
||||||
.Em test filter
|
|
||||||
is a string that is used to match test cases or test programs in a test suite.
|
|
||||||
Filters have the following form:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
test_program_name[:test_case_name]
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Where
|
|
||||||
.Sq test_program_name
|
|
||||||
is the name of a test program or a subdirectory in the test suite, and
|
|
||||||
.Sq test_case_name
|
|
||||||
is the name of a test case.
|
|
||||||
.Ss Test isolation
|
|
||||||
.\" Copyright 2014 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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.
|
|
||||||
The test programs and test cases run by
|
|
||||||
.Nm
|
|
||||||
are all executed in a deterministic environment.
|
|
||||||
This known, clean environment serves to make the test execution as
|
|
||||||
reproducible as possible and also to prevent clashes between tests that may,
|
|
||||||
for example, create auxiliary files with overlapping names.
|
|
||||||
.Pp
|
|
||||||
For plain test programs and for TAP test programs, the whole test program
|
|
||||||
is run under a single instance of the environment described in this page.
|
|
||||||
For ATF test programs (see
|
|
||||||
.Xr atf 7 ) ,
|
|
||||||
each individual test case
|
|
||||||
.Em and
|
|
||||||
test cleanup routine are executed in separate environments.
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Process space
|
|
||||||
Each test is executed in an independent processes.
|
|
||||||
Corollary: the test can do whatever it wants to the current process (such
|
|
||||||
as modify global variables) without having to undo such changes.
|
|
||||||
.It Session and process group
|
|
||||||
The test is executed in its own session and its own process group.
|
|
||||||
There is no controlling terminal attached to the session.
|
|
||||||
.Pp
|
|
||||||
Should the test spawn any children, the children should maintain the same
|
|
||||||
session and process group.
|
|
||||||
Modifying any of these settings prevents
|
|
||||||
.Nm
|
|
||||||
from being able to kill any stray subprocess as part of the cleanup phase.
|
|
||||||
If modifying these settings is necessary, or if any subprocess started by
|
|
||||||
the test decides to use a different process group or session, it is the
|
|
||||||
responsibility of the test to ensure those subprocesses are forcibly
|
|
||||||
terminated during cleanup.
|
|
||||||
.It Work directory
|
|
||||||
The test is executed in a temporary directory automatically created by the
|
|
||||||
runtime engine.
|
|
||||||
Corollary: the test can write to its current directory
|
|
||||||
without needing to clean any files and/or directories it creates.
|
|
||||||
The runtime engine takes care to recursively delete the temporary directories
|
|
||||||
after the execution of a test case.
|
|
||||||
Any file systems mounted within the temporary directory are also unmounted.
|
|
||||||
.It Home directory
|
|
||||||
The
|
|
||||||
.Va HOME
|
|
||||||
environment variable is set to the absolute path of the work directory.
|
|
||||||
.It Umask
|
|
||||||
The value of the umask is set to 0022.
|
|
||||||
.It Environment
|
|
||||||
The
|
|
||||||
.Va LANG ,
|
|
||||||
.Va LC_ALL ,
|
|
||||||
.Va LC_COLLATE ,
|
|
||||||
.Va LC_CTYPE ,
|
|
||||||
.Va LC_MESSAGES ,
|
|
||||||
.Va LC_MONETARY ,
|
|
||||||
.Va LC_NUMERIC
|
|
||||||
and
|
|
||||||
.Va LC_TIME
|
|
||||||
variables are unset.
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Va TZ
|
|
||||||
variable is set to
|
|
||||||
.Sq UTC .
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Va TMPDIR
|
|
||||||
variable is set to the absolute path of the work directory.
|
|
||||||
This is to prevent the test from mistakenly using a temporary directory
|
|
||||||
outside of the automatically-managed work directory, should the test use the
|
|
||||||
.Xr mktemp 3
|
|
||||||
familiy of functions.
|
|
||||||
.It Process limits
|
|
||||||
The maximum soft core size limit is raised to its corresponding hard limit.
|
|
||||||
This is a simple, best-effort attempt at allowing tests to dump core for
|
|
||||||
further diagnostic purposes.
|
|
||||||
.It Configuration varibles
|
|
||||||
The test engine may pass run-time configuration variables to the test program
|
|
||||||
via the environment.
|
|
||||||
The name of the configuration variable is prefixed with
|
|
||||||
.Sq TEST_ENV_
|
|
||||||
so that a configuration variable of the form
|
|
||||||
.Sq foo=bar
|
|
||||||
becomes accessible in the environment as
|
|
||||||
.Sq TEST_ENV_foo=bar .
|
|
||||||
.El
|
|
||||||
.Sh EXIT STATUS
|
|
||||||
The
|
|
||||||
.Nm
|
|
||||||
command returns 0 if all executed test cases pass or 1 if any of the
|
|
||||||
executed test cases fails or if any of the given test case filters does not
|
|
||||||
match any test case.
|
|
||||||
.Pp
|
|
||||||
Additional exit codes may be returned as described in
|
|
||||||
.Xr kyua 1 .
|
|
||||||
.Sh EXAMPLES
|
|
||||||
.Ss Workflow with results files
|
|
||||||
If one runs the following command twice in a row:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
kyua test -k /usr/tests/Kyuafile
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
the two executions will generate two different files with names like:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
~/.kyua/store/results.usr_tests.20140731-150500-196784.db
|
|
||||||
~/.kyua/store/results.usr_tests.20140731-151730-997451.db
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Taking advantage of the default naming scheme, the following commands would all
|
|
||||||
generate a report for the results of the
|
|
||||||
.Em latest
|
|
||||||
execution of the test suite:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
cd /usr/tests && kyua report
|
|
||||||
cd /usr/tests && kyua report --results-file=LATEST
|
|
||||||
kyua report --results-file=/usr/tests
|
|
||||||
kyua report --results-file=usr_tests
|
|
||||||
kyua report --results-file=usr_tests.20140731-151730-997451
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
But it is also possible to explicitly load data for older runs or from
|
|
||||||
explicitly-named files:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
kyua report \\
|
|
||||||
--results-file=usr_tests.20140731-150500-196784
|
|
||||||
kyua report \\
|
|
||||||
--results-file=~/.kyua/store/results.usr_tests.20140731-150500-196784.db
|
|
||||||
.Ed
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua 1 ,
|
|
||||||
.Xr kyua-report 1 ,
|
|
||||||
.Xr kyuafile 5
|
|
@ -1,400 +0,0 @@
|
|||||||
.\" Copyright 2011 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 May 12, 2015
|
|
||||||
.Dt KYUA 1
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm kyua
|
|
||||||
.Nd Testing framework for infrastructure software
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Nm
|
|
||||||
.Op Fl -config Ar file
|
|
||||||
.Op Fl -logfile Ar file
|
|
||||||
.Op Fl -loglevel Ar level
|
|
||||||
.Op Fl -variable Ar name=value
|
|
||||||
.Ar command
|
|
||||||
.Op Ar command_options
|
|
||||||
.Op Ar command_arguments
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
.Em If you are here looking for details on how to run the test suite in
|
|
||||||
.Pa /usr/tests
|
|
||||||
.Em ( or
|
|
||||||
.Pa /usr/tests ) ,
|
|
||||||
.Em please start by reading the
|
|
||||||
.Xr tests 7
|
|
||||||
.Em manual page that should be supplied by your system .
|
|
||||||
.Pp
|
|
||||||
Kyua is a testing framework for infrastructure software, originally
|
|
||||||
designed to equip BSD-based operating systems with a test suite.
|
|
||||||
This means that Kyua is lightweight and simple, and that Kyua integrates well
|
|
||||||
with various build systems and continuous integration frameworks.
|
|
||||||
.Pp
|
|
||||||
Kyua features an expressive test suite definition language, a safe
|
|
||||||
runtime engine for test suites and a powerful report generation engine.
|
|
||||||
.Pp
|
|
||||||
Kyua is for both developers and users, from the developer applying a
|
|
||||||
simple fix to a library to the system administrator deploying a new
|
|
||||||
release on a production machine.
|
|
||||||
.Pp
|
|
||||||
Kyua is able to execute test programs written with a plethora of testing
|
|
||||||
libraries and languages.
|
|
||||||
The test program library of choice is ATF, which
|
|
||||||
.Nm Ns 's
|
|
||||||
design originated from.
|
|
||||||
However, framework-less test programs and TAP-compliant test programs can also
|
|
||||||
be executed through
|
|
||||||
.Nm
|
|
||||||
.Ss Overview
|
|
||||||
As can be observed in the synopsis, the interface of
|
|
||||||
.Nm
|
|
||||||
implements a common subcommand-based interface.
|
|
||||||
The arguments to the tool specify, in this order: a set of common options
|
|
||||||
that all the commands accept, a required
|
|
||||||
.Ar command
|
|
||||||
name that specifies what
|
|
||||||
.Nm
|
|
||||||
should do, and
|
|
||||||
a set of possibly-optional
|
|
||||||
.Ar command_options
|
|
||||||
and
|
|
||||||
.Ar command_arguments
|
|
||||||
that are specific to the chosen command.
|
|
||||||
.Pp
|
|
||||||
The following options are recognized by all the commands.
|
|
||||||
Keep in mind that these must always be specified before the command name.
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Fl -config Ar path , Fl c Ar path
|
|
||||||
Specifies the configuration file to process, which must be in the format
|
|
||||||
described in
|
|
||||||
.Xr kyua.conf 5 .
|
|
||||||
The special value
|
|
||||||
.Sq none
|
|
||||||
explicitly disables the loading of any configuration file.
|
|
||||||
.Pp
|
|
||||||
Defaults to
|
|
||||||
.Pa ~/.kyua/kyua.conf
|
|
||||||
if it exists, otherwise to
|
|
||||||
.Pa /etc/kyua/kyua.conf
|
|
||||||
if it exists,
|
|
||||||
or else to
|
|
||||||
.Sq none .
|
|
||||||
.It Fl -logfile Ar path
|
|
||||||
Specifies the location of the file to which
|
|
||||||
.Nm
|
|
||||||
will log run time events useful for postmortem debugging.
|
|
||||||
.Pp
|
|
||||||
The default depends on different environment variables as described in
|
|
||||||
.Sx Logging ,
|
|
||||||
but typically the file will be stored within the user's home directory.
|
|
||||||
.It Fl -loglevel Ar level
|
|
||||||
Specifies the maximum logging level to record in the log file.
|
|
||||||
See
|
|
||||||
.Sx Logging
|
|
||||||
for more details.
|
|
||||||
.Pp
|
|
||||||
The default is
|
|
||||||
.Sq info .
|
|
||||||
.It Fl -variable Ar name=value , Fl v Ar name=value
|
|
||||||
Sets the
|
|
||||||
.Ar name
|
|
||||||
configuration variable to
|
|
||||||
.Ar value .
|
|
||||||
The values set through this option have preference over the values set in the
|
|
||||||
configuration file.
|
|
||||||
.Pp
|
|
||||||
The specified variable can either be a builtin variable or a test-suite
|
|
||||||
specific variable.
|
|
||||||
See
|
|
||||||
.Xr kyua.conf 5
|
|
||||||
for more details.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
The following commands are generic and do not have any relation to the execution
|
|
||||||
of tests or the inspection of their results:
|
|
||||||
.Bl -tag -width reportXjunitXX -offset indent
|
|
||||||
.It Ar about
|
|
||||||
Shows general program information.
|
|
||||||
See
|
|
||||||
.Xr kyua-about 1 .
|
|
||||||
.It Ar config
|
|
||||||
Inspects the values of the configuration variables.
|
|
||||||
See
|
|
||||||
.Xr kyua-config 1 .
|
|
||||||
.It Ar db-exec
|
|
||||||
Executes an arbitrary SQL statement on a results file and prints the
|
|
||||||
resulting table.
|
|
||||||
See
|
|
||||||
.Xr kyua-db-exec 1 .
|
|
||||||
.It Ar help
|
|
||||||
Shows usage information.
|
|
||||||
See
|
|
||||||
.Xr kyua-help 1 .
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
The following commands are used to generate reports based on the data previously
|
|
||||||
recorded in a results file:
|
|
||||||
.Bl -tag -width reportXjunitXX -offset indent
|
|
||||||
.It Ar report
|
|
||||||
Generates a plaintext report.
|
|
||||||
Combined with its
|
|
||||||
.Fl -verbose
|
|
||||||
flag and the ability to only display specific test cases, this command can also
|
|
||||||
be used to debug test failures post-facto on the console.
|
|
||||||
See
|
|
||||||
.Xr kyua-report 1 .
|
|
||||||
.It Ar report-html
|
|
||||||
Generates an HTML report.
|
|
||||||
See
|
|
||||||
.Xr kyua-report-html 1 .
|
|
||||||
.It Ar report-junit
|
|
||||||
Generates a JUnit report.
|
|
||||||
See
|
|
||||||
.Xr kyua-report-junit 1 .
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
The following commands are used to interact with a test suite:
|
|
||||||
.Bl -tag -width reportXjunitXX -offset indent
|
|
||||||
.It Ar debug
|
|
||||||
Executes a single test case in a controlled environment for debugging purposes.
|
|
||||||
See
|
|
||||||
.Xr kyua-debug 1 .
|
|
||||||
.It Ar list
|
|
||||||
Lists test cases defined in a test suite by a
|
|
||||||
.Xr kyuafile 5
|
|
||||||
and, optionally, displays their metadata.
|
|
||||||
See
|
|
||||||
.Xr kyua-list 1 .
|
|
||||||
.It Ar test
|
|
||||||
Runs tests defined in a test suite by a
|
|
||||||
.Xr kyuafile 5 .
|
|
||||||
See
|
|
||||||
.Xr kyua-test 1 .
|
|
||||||
.El
|
|
||||||
.Ss Logging
|
|
||||||
.Nm
|
|
||||||
has a logging facility that collects all kinds of events at run time.
|
|
||||||
These events are always logged to a file so that the log is available when
|
|
||||||
it is most needed: right after a non-reproducible problem happens.
|
|
||||||
The only way to disable logging is by sending the log to
|
|
||||||
.Pa /dev/null .
|
|
||||||
.Pp
|
|
||||||
The location of the log file can be manually specified with the
|
|
||||||
.Fl -logfile
|
|
||||||
option, which applies to all commands.
|
|
||||||
If no file is explicitly specified, the location of the log files is chosen in
|
|
||||||
this order:
|
|
||||||
.Bl -enum -offset indent
|
|
||||||
.It
|
|
||||||
.Pa ${HOME}/.kyua/logs/
|
|
||||||
if
|
|
||||||
.Va HOME
|
|
||||||
is defined.
|
|
||||||
.It
|
|
||||||
.Pa ${TMPDIR}/
|
|
||||||
if
|
|
||||||
.Va TMPDIR
|
|
||||||
is defined.
|
|
||||||
.It
|
|
||||||
.Pa /tmp/ .
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
And the default naming scheme of the log files is:
|
|
||||||
.Sq <progname>.<timestamp>.log .
|
|
||||||
.Pp
|
|
||||||
The messages stored in the log file have a level (or severity) attached to
|
|
||||||
them.
|
|
||||||
These are:
|
|
||||||
.Bl -tag -width warningXX -offset indent
|
|
||||||
.It error
|
|
||||||
Fatal error messages.
|
|
||||||
The program generally terminates after these, either in a clean manner or by
|
|
||||||
crashing.
|
|
||||||
.It warning
|
|
||||||
Non-fatal error messages.
|
|
||||||
These generally report a condition that must be addressed but the application
|
|
||||||
can continue to run.
|
|
||||||
.It info
|
|
||||||
Informational messages.
|
|
||||||
These tell the user what the program was doing at a general level of
|
|
||||||
operation.
|
|
||||||
.It debug
|
|
||||||
Detailed informational messages.
|
|
||||||
These are often useful when debugging problems in the application, as they
|
|
||||||
contain lots of internal details.
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
The default log level is
|
|
||||||
.Sq info
|
|
||||||
unless explicitly overridden with
|
|
||||||
.Fl -loglevel .
|
|
||||||
.Pp
|
|
||||||
The log file is a plain text file containing one line per log record.
|
|
||||||
The format of each line is as follows:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
timestamp entry_type pid file:line: message
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
.Ar entry_type
|
|
||||||
can be one of:
|
|
||||||
.Sq E
|
|
||||||
for an error,
|
|
||||||
.Sq W
|
|
||||||
for a warning,
|
|
||||||
.Sq I
|
|
||||||
for an informational message and
|
|
||||||
.Sq D
|
|
||||||
for a debug message.
|
|
||||||
.Ss Bug reporting
|
|
||||||
If you think you have encountered a bug in
|
|
||||||
.Nm ,
|
|
||||||
please take the time to let the developers know about it.
|
|
||||||
This will ensure that the bug is addressed and potentially fixed in the next
|
|
||||||
Kyua release.
|
|
||||||
.Pp
|
|
||||||
The first step in reporting a bug is to check if there already is a similar
|
|
||||||
bug in the database.
|
|
||||||
You can check what issues are currently in the database by going to:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
https://github.com/jmmv/kyua/issues/
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
If there is no existing issue that describes an issue similar to the
|
|
||||||
one you are experiencing, you can open a new one by visiting:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
https://github.com/jmmv/kyua/issues/new/
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
When doing so, please include as much detail as possible.
|
|
||||||
Among other things, explain what operating system and platform you are running
|
|
||||||
.Nm
|
|
||||||
on, what were you trying to do, what exact messages you saw on the screen,
|
|
||||||
how did you expect the program to behave, and any other details that you
|
|
||||||
may find relevant.
|
|
||||||
.Pp
|
|
||||||
Also, please include a copy of the log file corresponding to the problem
|
|
||||||
you are experiencing.
|
|
||||||
Unless you have changed the location of the log files, you can most likely
|
|
||||||
find them in
|
|
||||||
.Pa ~/.kyua/logs/ .
|
|
||||||
If the problem is reproducible, it is good idea to regenerate the log file
|
|
||||||
with an increased log level so as to provide more information.
|
|
||||||
For example:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
$ kyua --logfile=problem.log --loglevel=debug \\
|
|
||||||
[rest of the command line]
|
|
||||||
.Ed
|
|
||||||
.Sh ENVIRONMENT
|
|
||||||
The following variables are recognized and can be freely tuned by the end user:
|
|
||||||
.Bl -tag -width COLUMNSXX
|
|
||||||
.It Va COLUMNS
|
|
||||||
The width of the screen, in number of characters.
|
|
||||||
.Nm
|
|
||||||
uses this to wrap long lines.
|
|
||||||
If not present, the width of the screen is determined from the terminal
|
|
||||||
stdout is connected to, and, if the guessing fails, this defaults to infinity.
|
|
||||||
.It Va HOME
|
|
||||||
Path to the user's home directory.
|
|
||||||
.Nm
|
|
||||||
uses this location to determine paths to configuration files and default log
|
|
||||||
files.
|
|
||||||
.It Va TMPDIR
|
|
||||||
Path to the system-wide temporary directory.
|
|
||||||
.Nm
|
|
||||||
uses this location to place the work directory of test cases, among other
|
|
||||||
things.
|
|
||||||
.Pp
|
|
||||||
The default value of this variable depends on the operating system.
|
|
||||||
In general, it is
|
|
||||||
.Pa /tmp .
|
|
||||||
.El
|
|
||||||
.Pp
|
|
||||||
The following variables are also recognized, but you should not need to set them
|
|
||||||
during normal operation.
|
|
||||||
They are only provided to override the value of built-in values, which is useful
|
|
||||||
when testing
|
|
||||||
.Nm
|
|
||||||
itself:
|
|
||||||
.Bl -tag -width KYUAXCONFDIRXX
|
|
||||||
.It Va KYUA_CONFDIR
|
|
||||||
Path to the system-wide configuration files for
|
|
||||||
.Nm .
|
|
||||||
.Pp
|
|
||||||
Defaults to
|
|
||||||
.Pa /etc/kyua .
|
|
||||||
.It Va KYUA_DOCDIR
|
|
||||||
Path to the location of installed documentation.
|
|
||||||
.Pp
|
|
||||||
Defaults to
|
|
||||||
.Pa /usr/share/doc/kyua .
|
|
||||||
.It Va KYUA_MISCDIR
|
|
||||||
Path to the location of the installed miscellaneous scripts and data
|
|
||||||
files provided by
|
|
||||||
.Nm .
|
|
||||||
.Pp
|
|
||||||
Defaults to
|
|
||||||
.Pa /usr/share/kyua/misc .
|
|
||||||
.It Va KYUA_STOREDIR
|
|
||||||
Path to the location of the installed store support files; e.g., the
|
|
||||||
directory containing the SQL database schema.
|
|
||||||
.Pp
|
|
||||||
Defaults to
|
|
||||||
.Pa /usr/share/kyua/store .
|
|
||||||
.El
|
|
||||||
.Sh FILES
|
|
||||||
.Bl -tag -width XXXX
|
|
||||||
.It Pa ~/.kyua/store/
|
|
||||||
Default location for the results files.
|
|
||||||
.It Pa ~/.kyua/kyua.conf
|
|
||||||
User-specific configuration file.
|
|
||||||
.It Pa ~/.kyua/logs/
|
|
||||||
Default location for the collected log files.
|
|
||||||
.It Pa /etc/kyua/kyua.conf
|
|
||||||
System-wide configuration file.
|
|
||||||
.El
|
|
||||||
.Sh EXIT STATUS
|
|
||||||
.Nm
|
|
||||||
returns 0 on success, 1 on a controlled error condition in the given
|
|
||||||
subcommand, 2 on a general unexpected error and 3 on a usage error.
|
|
||||||
.Pp
|
|
||||||
The documentation of the subcommands in the corresponding manual pages only
|
|
||||||
details the difference between a successful exit (0) and the detection of a
|
|
||||||
controlled error (1).
|
|
||||||
Even though when those manual pages do not describe any other exit statuses,
|
|
||||||
codes above 1 can be returned.
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua.conf 5 ,
|
|
||||||
.Xr kyuafile 5 ,
|
|
||||||
.Xr atf 7 ,
|
|
||||||
.Xr tests 7
|
|
||||||
.Sh AUTHORS
|
|
||||||
For more details on the people that made
|
|
||||||
.Nm
|
|
||||||
possible and the license terms, run:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
$ kyua about
|
|
||||||
.Ed
|
|
@ -1,141 +0,0 @@
|
|||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 February 20, 2015
|
|
||||||
.Dt KYUA.CONF 5
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm kyua.conf
|
|
||||||
.Nd Configuration file for the kyua tool
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Fn syntax "int version"
|
|
||||||
.Pp
|
|
||||||
Variables:
|
|
||||||
.Va architecture ,
|
|
||||||
.Va platform ,
|
|
||||||
.Va test_suites ,
|
|
||||||
.Va unprivileged_user .
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
The configuration of Kyua is a simple collection of key/value pairs called
|
|
||||||
configuration variables.
|
|
||||||
There are configuration variables that have a special meaning to the runtime
|
|
||||||
engine implemented by
|
|
||||||
.Xr kyua 1 ,
|
|
||||||
and there are variables that only have meaning in the context of particular
|
|
||||||
test suites.
|
|
||||||
.Pp
|
|
||||||
Configuration files are Lua scripts.
|
|
||||||
In their most basic form, their whole purpose is to assign values to
|
|
||||||
variables, but the user has the freedom to implement any logic he desires
|
|
||||||
to compute such values.
|
|
||||||
.Ss File versioning
|
|
||||||
Every
|
|
||||||
.Nm
|
|
||||||
file starts with a call to
|
|
||||||
.Fn syntax "int version" .
|
|
||||||
This call determines the specific schema used by the file so that future
|
|
||||||
backwards-incompatible modifications to the file can be introduced.
|
|
||||||
.Pp
|
|
||||||
Any new
|
|
||||||
.Nm
|
|
||||||
file should set
|
|
||||||
.Fa version
|
|
||||||
to
|
|
||||||
.Sq 2 .
|
|
||||||
.Ss Runtime configuration variables
|
|
||||||
The following variables are internally recognized by
|
|
||||||
.Xr kyua 1 :
|
|
||||||
.Bl -tag -width XX -offset indent
|
|
||||||
.It Va architecture
|
|
||||||
Name of the system architecture (aka processor type).
|
|
||||||
.It Va parallelism
|
|
||||||
Maximum number of test cases to execute concurrently.
|
|
||||||
.It Va platform
|
|
||||||
Name of the system platform (aka machine type).
|
|
||||||
.It Va unprivileged_user
|
|
||||||
Name or UID of the unprivileged user.
|
|
||||||
.Pp
|
|
||||||
If set, the given user must exist in the system and his privileges will be
|
|
||||||
used to run test cases that need regular privileges when
|
|
||||||
.Xr kyua 1
|
|
||||||
is executed as root.
|
|
||||||
.El
|
|
||||||
.Ss Test-suite configuration variables
|
|
||||||
Each test suite is able to recognize arbitrary configuration variables, and
|
|
||||||
their type and meaning is specific to the test suite.
|
|
||||||
Because the existence and naming of these variables depends on every test
|
|
||||||
suite, this manual page cannot detail them; please refer to the documentation
|
|
||||||
of the test suite you are working with for more details on this topic.
|
|
||||||
.Pp
|
|
||||||
Test-suite specific configuration variables are defined inside the
|
|
||||||
.Va test_suites
|
|
||||||
dictionary.
|
|
||||||
The general syntax is:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
test_suites.<test_suite_name>.<variable_name> = <value>
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
where
|
|
||||||
.Va test_suite_name
|
|
||||||
is the name of the test suite,
|
|
||||||
.Va variable_name
|
|
||||||
is the name of the variable to set, and
|
|
||||||
.Va value
|
|
||||||
is a value.
|
|
||||||
The value can be a string, an integer or a boolean.
|
|
||||||
.Sh FILES
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It /usr/share/examples/kyua/kyua.conf
|
|
||||||
Sample configuration file.
|
|
||||||
.El
|
|
||||||
.Sh EXAMPLES
|
|
||||||
The following
|
|
||||||
.Nm
|
|
||||||
shows a simple configuration file that overrides a bunch of the built-in
|
|
||||||
.Xr kyua 1
|
|
||||||
configuration variables:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
syntax(2)
|
|
||||||
|
|
||||||
architecture = 'x86_64'
|
|
||||||
platform = 'amd64'
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
The following is a more complex example that introduces the definition of
|
|
||||||
per-test suite configuration variables:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
syntax(2)
|
|
||||||
|
|
||||||
-- Assign built-in variables.
|
|
||||||
unprivileged_user = '_tests'
|
|
||||||
|
|
||||||
-- Assign test-suite variables. All of these must be strings.
|
|
||||||
test_suites.NetBSD.file_systems = 'ffs ext2fs'
|
|
||||||
test_suites.X11.graphics_driver = 'vesa'
|
|
||||||
.Ed
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua 1
|
|
@ -1,407 +0,0 @@
|
|||||||
.\" Copyright 2012 The Kyua Authors.
|
|
||||||
.\" All rights reserved.
|
|
||||||
.\"
|
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
|
||||||
.\" modification, are permitted provided that the following conditions are
|
|
||||||
.\" met:
|
|
||||||
.\"
|
|
||||||
.\" * Redistributions of source code must retain the above copyright
|
|
||||||
.\" notice, this list of conditions and the following disclaimer.
|
|
||||||
.\" * 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.
|
|
||||||
.\" * Neither the name of Google Inc. nor the names of its contributors
|
|
||||||
.\" may be used to endorse or promote products derived from this software
|
|
||||||
.\" without specific prior written permission.
|
|
||||||
.\"
|
|
||||||
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT
|
|
||||||
.\" OWNER 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 July 3, 2015
|
|
||||||
.Dt KYUAFILE 5
|
|
||||||
.Os
|
|
||||||
.Sh NAME
|
|
||||||
.Nm Kyuafile
|
|
||||||
.Nd Test suite description files
|
|
||||||
.Sh SYNOPSIS
|
|
||||||
.Fn atf_test_program "string name" "[string metadata]"
|
|
||||||
.Fn current_kyuafile
|
|
||||||
.Fn fs.basename "string path"
|
|
||||||
.Fn fs.dirname "string path"
|
|
||||||
.Fn fs.exists "string path"
|
|
||||||
.Fn fs.files "string path"
|
|
||||||
.Fn fs.is_absolute "string path"
|
|
||||||
.Fn fs.join "string path" "string path"
|
|
||||||
.Fn include "string path"
|
|
||||||
.Fn plain_test_program "string name" "[string metadata]"
|
|
||||||
.Fn syntax "int version"
|
|
||||||
.Fn tap_test_program "string name" "[string metadata]"
|
|
||||||
.Fn test_suite "string name"
|
|
||||||
.Sh DESCRIPTION
|
|
||||||
A test suite is a collection of test programs and is represented by a
|
|
||||||
hierarchical layout of test binaries on the file system.
|
|
||||||
Any subtree of the file system can represent a test suite, provided that it
|
|
||||||
includes one or more
|
|
||||||
.Nm Ns s ,
|
|
||||||
which are the test suite definition files.
|
|
||||||
.Pp
|
|
||||||
A
|
|
||||||
.Nm
|
|
||||||
is a Lua script whose purpose is to describe the structure of the test
|
|
||||||
suite it belongs to.
|
|
||||||
To do so, the script has access to a collection of special functions provided
|
|
||||||
by
|
|
||||||
.Xr kyua 1
|
|
||||||
as described in
|
|
||||||
.Sx Helper functions .
|
|
||||||
.Ss File versioning
|
|
||||||
Every
|
|
||||||
.Nm
|
|
||||||
file starts with a call to
|
|
||||||
.Fn syntax "int version" .
|
|
||||||
This call determines the specific schema used by the file so that future
|
|
||||||
backwards-incompatible modifications to the file can be introduced.
|
|
||||||
.Pp
|
|
||||||
Any new
|
|
||||||
.Nm
|
|
||||||
file should set
|
|
||||||
.Fa version
|
|
||||||
to
|
|
||||||
.Sq 2 .
|
|
||||||
.Ss Test suite definition
|
|
||||||
If the
|
|
||||||
.Nm
|
|
||||||
registers any test programs,
|
|
||||||
the
|
|
||||||
.Nm
|
|
||||||
must define the name of the test suite the test programs belong to by using the
|
|
||||||
.Fn test_suite
|
|
||||||
function at the very beginning of the file.
|
|
||||||
.Pp
|
|
||||||
The test suite name provided in the
|
|
||||||
.Fn test_suite
|
|
||||||
call tells
|
|
||||||
.Xr kyua 1
|
|
||||||
which set of configuration variables from
|
|
||||||
.Xr kyua.conf 5
|
|
||||||
to pass to the test programs at run time.
|
|
||||||
.Ss Test program registration
|
|
||||||
A
|
|
||||||
.Nm
|
|
||||||
can register test programs by means of a variety of
|
|
||||||
.Fn *_test_program
|
|
||||||
functions, all of which take the name of a test program and a set of
|
|
||||||
optional metadata properties that describe such test program.
|
|
||||||
.Pp
|
|
||||||
The test programs to be registered must live in the current directory; in
|
|
||||||
other words, the various
|
|
||||||
.Fn *_test_program
|
|
||||||
calls cannot reference test programs in other directories.
|
|
||||||
The rationale for this is to force all
|
|
||||||
.Nm
|
|
||||||
files to be self-contained, and to simplify their internal representation.
|
|
||||||
.Pp
|
|
||||||
.Em ATF test programs
|
|
||||||
are those that use the
|
|
||||||
.Xr atf 7
|
|
||||||
libraries.
|
|
||||||
They can be registered with the
|
|
||||||
.Fn atf_test_program
|
|
||||||
table constructor.
|
|
||||||
This function takes the
|
|
||||||
.Fa name
|
|
||||||
of the test program and a collection of optional metadata settings for all
|
|
||||||
the test cases in the test program.
|
|
||||||
Any metadata properties defined by the test cases themselves override the
|
|
||||||
metadata values defined here.
|
|
||||||
.Pp
|
|
||||||
.Em Plain test programs
|
|
||||||
are those that return 0 on success and non-0 on failure; in general, most test
|
|
||||||
programs (even those that use fancy unit-testing libraries) behave this way and
|
|
||||||
thus also qualify as plain test programs.
|
|
||||||
They can be registered with the
|
|
||||||
.Fn plain_test_program
|
|
||||||
table constructor.
|
|
||||||
This function takes the
|
|
||||||
.Fa name
|
|
||||||
of the test program, an optional
|
|
||||||
.Fa test_suite
|
|
||||||
name that overrides the global test suite name, and a collection of optional
|
|
||||||
metadata settings for the test program.
|
|
||||||
.Pp
|
|
||||||
.Em TAP test programs
|
|
||||||
are those that implement the Test Anything Protocol.
|
|
||||||
They can be registered with the
|
|
||||||
.Fn tap_test_program
|
|
||||||
table constructor.
|
|
||||||
This function takes the
|
|
||||||
.Fa name
|
|
||||||
of the test program and a collection of optional metadata settings for the
|
|
||||||
test program.
|
|
||||||
.Pp
|
|
||||||
The following metadata properties can be passed to any test program definition:
|
|
||||||
.Bl -tag -width XX -offset indent
|
|
||||||
.It Va allowed_architectures
|
|
||||||
Whitespace-separated list of machine architecture names allowed by the test.
|
|
||||||
If empty or not defined, the test is allowed to run on any machine
|
|
||||||
architecture.
|
|
||||||
.It Va allowed_platforms
|
|
||||||
Whitespace-separated list of machine platform names allowed by the test.
|
|
||||||
If empty or not defined, the test is allowed to run on any machine
|
|
||||||
platform.
|
|
||||||
.It Va custom.NAME
|
|
||||||
Custom variable defined by the test where
|
|
||||||
.Sq NAME
|
|
||||||
denotes the name of the variable.
|
|
||||||
These variables are useful to tag your tests with information specific to
|
|
||||||
your project.
|
|
||||||
The values of such variables are propagated all the way from the tests to the
|
|
||||||
results files and later to any generated reports.
|
|
||||||
.Pp
|
|
||||||
Note that if the name happens to have dashes or any other special characters
|
|
||||||
in it, you will have to use a special Lua syntax to define the property.
|
|
||||||
Refer to the
|
|
||||||
.Sx EXAMPLES
|
|
||||||
section below for clarification.
|
|
||||||
.It Va description
|
|
||||||
Textual description of the test.
|
|
||||||
.It Va is_exclusive
|
|
||||||
If true, indicates that this test program cannot be executed along any other
|
|
||||||
programs at the same time.
|
|
||||||
Test programs that affect global system state, such as those that modify the
|
|
||||||
value of a
|
|
||||||
.Xr sysctl 8
|
|
||||||
setting, must set themselves as exclusive to prevent failures due to race
|
|
||||||
conditions.
|
|
||||||
Defaults to false.
|
|
||||||
.It Va required_configs
|
|
||||||
Whitespace-separated list of configuration variables that the test requires
|
|
||||||
to be defined before it can run.
|
|
||||||
.It Va required_disk_space
|
|
||||||
Amount of available disk space that the test needs to run successfully.
|
|
||||||
.It Va required_files
|
|
||||||
Whitespace-separated list of paths that the test requires to exist before
|
|
||||||
it can run.
|
|
||||||
.It Va required_memory
|
|
||||||
Amount of physical memory that the test needs to run successfully.
|
|
||||||
.It Va required_programs
|
|
||||||
Whitespace-separated list of basenames or absolute paths pointing to executable
|
|
||||||
binaries that the test requires to exist before it can run.
|
|
||||||
.It Va required_user
|
|
||||||
If empty, the test has no restrictions on the calling user for it to run.
|
|
||||||
If set to
|
|
||||||
.Sq unprivileged ,
|
|
||||||
the test needs to not run as root.
|
|
||||||
If set to
|
|
||||||
.Sq root ,
|
|
||||||
the test must run as root.
|
|
||||||
.It Va timeout
|
|
||||||
Amount of seconds that the test is allowed to execute before being killed.
|
|
||||||
.El
|
|
||||||
.Ss Recursion
|
|
||||||
To reference test programs in another subdirectory, a different
|
|
||||||
.Nm
|
|
||||||
must be created in that directory and it must be included into the original
|
|
||||||
.Nm
|
|
||||||
by means of the
|
|
||||||
.Fn include
|
|
||||||
function.
|
|
||||||
.Pp
|
|
||||||
.Fn include
|
|
||||||
may only be called with a relative path and with at most one directory
|
|
||||||
component.
|
|
||||||
This is by design: Kyua uses the file system structure as the layout of the
|
|
||||||
test suite definition.
|
|
||||||
Therefore, each subdirectory in a test suite must include its own
|
|
||||||
.Nm
|
|
||||||
and each
|
|
||||||
.Nm
|
|
||||||
can only descend into the
|
|
||||||
.Nm Ns s
|
|
||||||
of immediate subdirectories.
|
|
||||||
.Pp
|
|
||||||
If you need to source a
|
|
||||||
.Nm
|
|
||||||
located in disjoint parts of your file system namespace, you will have to
|
|
||||||
create a
|
|
||||||
.Sq shadow tree
|
|
||||||
using symbolic links and possibly helper
|
|
||||||
.Nm Ns s
|
|
||||||
to plug the various subdirectories together.
|
|
||||||
See the
|
|
||||||
.Sx EXAMPLES
|
|
||||||
section below for details.
|
|
||||||
.Pp
|
|
||||||
Note that each file is processed in its own Lua environment: there is no
|
|
||||||
mechanism to pass state from one file to the other.
|
|
||||||
The reason for this is that there is no such thing as a
|
|
||||||
.Dq top-level
|
|
||||||
.Nm
|
|
||||||
in a test suite: the user has to be able to run the test suite from any
|
|
||||||
directory in a given hierarchy, and this execution must not depend on files
|
|
||||||
that live in parent directories.
|
|
||||||
.Ss Top-level Kyuafile
|
|
||||||
Every system has a top directory into which test suites get installed.
|
|
||||||
The default is
|
|
||||||
.Pa /usr/tests .
|
|
||||||
Within this directory live test suites, each of which is in an independent
|
|
||||||
subdirectory.
|
|
||||||
Each subdirectory can be provided separately by independent third-party
|
|
||||||
packages.
|
|
||||||
.Pp
|
|
||||||
Kyua allows running all the installed test suites at once in order to
|
|
||||||
provide comprehensive cross-component reports.
|
|
||||||
In order to do this, there is a special file in the top directory that knows
|
|
||||||
how to inspect the subdirectories in search for other Kyuafiles and include
|
|
||||||
them.
|
|
||||||
.Pp
|
|
||||||
The
|
|
||||||
.Sx FILES
|
|
||||||
section includes more details on where this file lives.
|
|
||||||
.Ss Helper functions
|
|
||||||
The
|
|
||||||
.Sq base ,
|
|
||||||
.Sq string ,
|
|
||||||
and
|
|
||||||
.Sq table
|
|
||||||
Lua modules are fully available in the context of a
|
|
||||||
.Nm .
|
|
||||||
.Pp
|
|
||||||
The following extra functions are provided by Kyua:
|
|
||||||
.Bl -tag -width XX -offset indent
|
|
||||||
.It Ft string Fn current_kyuafile
|
|
||||||
Returns the absolute path to the current
|
|
||||||
.Nm .
|
|
||||||
.It Ft string Fn fs.basename "string path"
|
|
||||||
Returns the last component of the given path.
|
|
||||||
.It Ft string Fn fs.dirname "string path"
|
|
||||||
Returns the given path without its last component or a dot if the path has
|
|
||||||
a single component.
|
|
||||||
.It Ft bool Fn fs.exists "string path"
|
|
||||||
Checks if the given path exists.
|
|
||||||
If the path is not absolute, it is relative to the directory containing the
|
|
||||||
.Nm
|
|
||||||
in which the call to this function occurs.
|
|
||||||
.It Ft iterator Fn fs.files "string path"
|
|
||||||
Opens a directory for scanning of its entries.
|
|
||||||
The returned iterator yields an entry on each call, and the entry is simply
|
|
||||||
the filename.
|
|
||||||
If the path is not absolute, it is relative to the directory containing the
|
|
||||||
.Nm
|
|
||||||
in which the call to this function occurs.
|
|
||||||
.It Ft is_absolute Fn fs.is_absolute "string path"
|
|
||||||
Returns true if the given path is absolute; false otherwise.
|
|
||||||
.It Ft join Fn fs.join "string path" "string path"
|
|
||||||
Concatenates the two paths.
|
|
||||||
The second path cannot be absolute.
|
|
||||||
.El
|
|
||||||
.Sh FILES
|
|
||||||
.Bl -tag -width XX
|
|
||||||
.It Pa /usr/tests/Kyuafile .
|
|
||||||
Top-level
|
|
||||||
.Nm
|
|
||||||
for the current system.
|
|
||||||
.It Pa /usr/share/examples/kyua/Kyuafile.top .
|
|
||||||
Sample file to serve as a top-level
|
|
||||||
.Nm .
|
|
||||||
.El
|
|
||||||
.Sh EXAMPLES
|
|
||||||
The following
|
|
||||||
.Nm
|
|
||||||
is the simplest you can define.
|
|
||||||
It provides a test suite definition and registers a couple of different test
|
|
||||||
programs using different interfaces:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
syntax(2)
|
|
||||||
|
|
||||||
test_suite('first')
|
|
||||||
|
|
||||||
atf_test_program{name='integration_test'}
|
|
||||||
plain_test_program{name='legacy_test'}
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
The following example is a bit more elaborate.
|
|
||||||
It introduces some metadata properties to the test program definitions and
|
|
||||||
recurses into a couple of subdirectories:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
syntax(2)
|
|
||||||
|
|
||||||
test_suite('second')
|
|
||||||
|
|
||||||
plain_test_program{name='legacy_test',
|
|
||||||
allowed_architectures='amd64 i386',
|
|
||||||
required_files='/bin/ls',
|
|
||||||
timeout=30}
|
|
||||||
|
|
||||||
tap_test_program{name='privileged_test',
|
|
||||||
required_user='root'}
|
|
||||||
|
|
||||||
include('module-1/Kyuafile')
|
|
||||||
include('module-2/Kyuafile')
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
The syntax to define custom properties may be not obvious if their names
|
|
||||||
have any characters that make the property name not be a valid Lua identifier.
|
|
||||||
Dashes are just one example.
|
|
||||||
To set such properties, do something like this:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
syntax(2)
|
|
||||||
|
|
||||||
test_suite('FreeBSD')
|
|
||||||
|
|
||||||
plain_test_program{name='the_test',
|
|
||||||
['custom.FreeBSD-Bug-Id']='category/12345'}
|
|
||||||
.Ed
|
|
||||||
.Ss Connecting disjoint test suites
|
|
||||||
Now suppose you had various test suites on your file system and you would
|
|
||||||
like to connect them together so that they could be executed and treated as
|
|
||||||
a single unit.
|
|
||||||
The test suites we would like to connect live under
|
|
||||||
.Pa /usr/tests ,
|
|
||||||
.Pa /usr/local/tests
|
|
||||||
and
|
|
||||||
.Pa ~/local/tests .
|
|
||||||
.Pp
|
|
||||||
We cannot create a
|
|
||||||
.Nm
|
|
||||||
that references these because the
|
|
||||||
.Fn include
|
|
||||||
directive does not support absolute paths.
|
|
||||||
Instead, what we can do is create a shadow tree using symbolic links:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
$ mkdir ~/everything
|
|
||||||
$ ln -s /usr/tests ~/everything/system-tests
|
|
||||||
$ ln -s /usr/local/tests ~/everything/local-tests
|
|
||||||
$ ln -s ~/local/tests ~/everything/home-tests
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
And then we create an
|
|
||||||
.Pa ~/everything/Kyuafile
|
|
||||||
file to drive the execution of the integrated test suite:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
syntax(2)
|
|
||||||
|
|
||||||
test_suite('test-all-the-things')
|
|
||||||
|
|
||||||
include('system-tests/Kyuafile')
|
|
||||||
include('local-tests/Kyuafile')
|
|
||||||
include('home-tests/Kyuafile')
|
|
||||||
.Ed
|
|
||||||
.Pp
|
|
||||||
Or, simply, you could reuse the sample top-level
|
|
||||||
.Nm
|
|
||||||
to avoid having to manually craft the list of directories into which to
|
|
||||||
recurse:
|
|
||||||
.Bd -literal -offset indent
|
|
||||||
$ cp /usr/share/examples/kyua/Kyuafile.top ~/everything/Kyuafile
|
|
||||||
.Ed
|
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr kyua 1
|
|
@ -48,6 +48,20 @@ STORE= migrate_v1_v2.sql migrate_v2_v3.sql schema_v3.sql
|
|||||||
STOREDIR= ${KYUA_STOREDIR}
|
STOREDIR= ${KYUA_STOREDIR}
|
||||||
.PATH: ${KYUA_SRCDIR}/store
|
.PATH: ${KYUA_SRCDIR}/store
|
||||||
|
|
||||||
|
CLEANFILES+= ${MAN}
|
||||||
.PATH: ${KYUA_SRCDIR}/doc
|
.PATH: ${KYUA_SRCDIR}/doc
|
||||||
|
.for man in ${MAN}
|
||||||
|
${man}: ${man}.in
|
||||||
|
${SH} ${KYUA_SRCDIR}/doc/manbuild.sh \
|
||||||
|
-v "CONFDIR=${KYUA_CONFDIR}" \
|
||||||
|
-v "DOCDIR=${KYUA_DOCDIR}" \
|
||||||
|
-v "EGDIR=${KYUA_EGDIR}" \
|
||||||
|
-v "MISCDIR=${KYUA_MISCDIR}" \
|
||||||
|
-v "PACKAGE=kyua" \
|
||||||
|
-v "STOREDIR=${KYUA_STOREDIR}" \
|
||||||
|
-v "TESTSDIR=${TESTSBASE}" \
|
||||||
|
-v "VERSION=${KYUA_VERSION}" \
|
||||||
|
${.ALLSRC} ${.TARGET}
|
||||||
|
.endfor
|
||||||
|
|
||||||
.include <bsd.prog.mk>
|
.include <bsd.prog.mk>
|
||||||
|
Loading…
Reference in New Issue
Block a user