1*b0d29bc4SBrooks Davis.\" Copyright 2011 The Kyua Authors. 2*b0d29bc4SBrooks Davis.\" All rights reserved. 3*b0d29bc4SBrooks Davis.\" 4*b0d29bc4SBrooks Davis.\" Redistribution and use in source and binary forms, with or without 5*b0d29bc4SBrooks Davis.\" modification, are permitted provided that the following conditions are 6*b0d29bc4SBrooks Davis.\" met: 7*b0d29bc4SBrooks Davis.\" 8*b0d29bc4SBrooks Davis.\" * Redistributions of source code must retain the above copyright 9*b0d29bc4SBrooks Davis.\" notice, this list of conditions and the following disclaimer. 10*b0d29bc4SBrooks Davis.\" * Redistributions in binary form must reproduce the above copyright 11*b0d29bc4SBrooks Davis.\" notice, this list of conditions and the following disclaimer in the 12*b0d29bc4SBrooks Davis.\" documentation and/or other materials provided with the distribution. 13*b0d29bc4SBrooks Davis.\" * Neither the name of Google Inc. nor the names of its contributors 14*b0d29bc4SBrooks Davis.\" may be used to endorse or promote products derived from this software 15*b0d29bc4SBrooks Davis.\" without specific prior written permission. 16*b0d29bc4SBrooks Davis.\" 17*b0d29bc4SBrooks Davis.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18*b0d29bc4SBrooks Davis.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19*b0d29bc4SBrooks Davis.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20*b0d29bc4SBrooks Davis.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21*b0d29bc4SBrooks Davis.\" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22*b0d29bc4SBrooks Davis.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23*b0d29bc4SBrooks Davis.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24*b0d29bc4SBrooks Davis.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25*b0d29bc4SBrooks Davis.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26*b0d29bc4SBrooks Davis.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27*b0d29bc4SBrooks Davis.\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28*b0d29bc4SBrooks Davis.Dd May 12, 2015 29*b0d29bc4SBrooks Davis.Dt KYUA 1 30*b0d29bc4SBrooks Davis.Os 31*b0d29bc4SBrooks Davis.Sh NAME 32*b0d29bc4SBrooks Davis.Nm kyua 33*b0d29bc4SBrooks Davis.Nd Testing framework for infrastructure software 34*b0d29bc4SBrooks Davis.Sh SYNOPSIS 35*b0d29bc4SBrooks Davis.Nm 36*b0d29bc4SBrooks Davis.Op Fl -config Ar file 37*b0d29bc4SBrooks Davis.Op Fl -logfile Ar file 38*b0d29bc4SBrooks Davis.Op Fl -loglevel Ar level 39*b0d29bc4SBrooks Davis.Op Fl -variable Ar name=value 40*b0d29bc4SBrooks Davis.Ar command 41*b0d29bc4SBrooks Davis.Op Ar command_options 42*b0d29bc4SBrooks Davis.Op Ar command_arguments 43*b0d29bc4SBrooks Davis.Sh DESCRIPTION 44*b0d29bc4SBrooks Davis.Em If you are here looking for details on how to run the test suite in 45*b0d29bc4SBrooks Davis.Pa /usr/tests 46*b0d29bc4SBrooks Davis.Em ( or 47*b0d29bc4SBrooks Davis.Pa __TESTSDIR__ ) , 48*b0d29bc4SBrooks Davis.Em please start by reading the 49*b0d29bc4SBrooks Davis.Xr tests 7 50*b0d29bc4SBrooks Davis.Em manual page that should be supplied by your system . 51*b0d29bc4SBrooks Davis.Pp 52*b0d29bc4SBrooks DavisKyua is a testing framework for infrastructure software, originally 53*b0d29bc4SBrooks Davisdesigned to equip BSD-based operating systems with a test suite. 54*b0d29bc4SBrooks DavisThis means that Kyua is lightweight and simple, and that Kyua integrates well 55*b0d29bc4SBrooks Daviswith various build systems and continuous integration frameworks. 56*b0d29bc4SBrooks Davis.Pp 57*b0d29bc4SBrooks DavisKyua features an expressive test suite definition language, a safe 58*b0d29bc4SBrooks Davisruntime engine for test suites and a powerful report generation engine. 59*b0d29bc4SBrooks Davis.Pp 60*b0d29bc4SBrooks DavisKyua is for both developers and users, from the developer applying a 61*b0d29bc4SBrooks Davissimple fix to a library to the system administrator deploying a new 62*b0d29bc4SBrooks Davisrelease on a production machine. 63*b0d29bc4SBrooks Davis.Pp 64*b0d29bc4SBrooks DavisKyua is able to execute test programs written with a plethora of testing 65*b0d29bc4SBrooks Davislibraries and languages. 66*b0d29bc4SBrooks DavisThe test program library of choice is ATF, which 67*b0d29bc4SBrooks Davis.Nm Ns 's 68*b0d29bc4SBrooks Davisdesign originated from. 69*b0d29bc4SBrooks DavisHowever, framework-less test programs and TAP-compliant test programs can also 70*b0d29bc4SBrooks Davisbe executed through 71*b0d29bc4SBrooks Davis.Nm 72*b0d29bc4SBrooks Davis.Ss Overview 73*b0d29bc4SBrooks DavisAs can be observed in the synopsis, the interface of 74*b0d29bc4SBrooks Davis.Nm 75*b0d29bc4SBrooks Davisimplements a common subcommand-based interface. 76*b0d29bc4SBrooks DavisThe arguments to the tool specify, in this order: a set of common options 77*b0d29bc4SBrooks Davisthat all the commands accept, a required 78*b0d29bc4SBrooks Davis.Ar command 79*b0d29bc4SBrooks Davisname that specifies what 80*b0d29bc4SBrooks Davis.Nm 81*b0d29bc4SBrooks Davisshould do, and 82*b0d29bc4SBrooks Davisa set of possibly-optional 83*b0d29bc4SBrooks Davis.Ar command_options 84*b0d29bc4SBrooks Davisand 85*b0d29bc4SBrooks Davis.Ar command_arguments 86*b0d29bc4SBrooks Davisthat are specific to the chosen command. 87*b0d29bc4SBrooks Davis.Pp 88*b0d29bc4SBrooks DavisThe following options are recognized by all the commands. 89*b0d29bc4SBrooks DavisKeep in mind that these must always be specified before the command name. 90*b0d29bc4SBrooks Davis.Bl -tag -width XX 91*b0d29bc4SBrooks Davis.It Fl -config Ar path , Fl c Ar path 92*b0d29bc4SBrooks DavisSpecifies the configuration file to process, which must be in the format 93*b0d29bc4SBrooks Davisdescribed in 94*b0d29bc4SBrooks Davis.Xr kyua.conf 5 . 95*b0d29bc4SBrooks DavisThe special value 96*b0d29bc4SBrooks Davis.Sq none 97*b0d29bc4SBrooks Davisexplicitly disables the loading of any configuration file. 98*b0d29bc4SBrooks Davis.Pp 99*b0d29bc4SBrooks DavisDefaults to 100*b0d29bc4SBrooks Davis.Pa ~/.kyua/kyua.conf 101*b0d29bc4SBrooks Davisif it exists, otherwise to 102*b0d29bc4SBrooks Davis.Pa __CONFDIR__/kyua.conf 103*b0d29bc4SBrooks Davisif it exists, 104*b0d29bc4SBrooks Davisor else to 105*b0d29bc4SBrooks Davis.Sq none . 106*b0d29bc4SBrooks Davis.It Fl -logfile Ar path 107*b0d29bc4SBrooks DavisSpecifies the location of the file to which 108*b0d29bc4SBrooks Davis.Nm 109*b0d29bc4SBrooks Daviswill log run time events useful for postmortem debugging. 110*b0d29bc4SBrooks Davis.Pp 111*b0d29bc4SBrooks DavisThe default depends on different environment variables as described in 112*b0d29bc4SBrooks Davis.Sx Logging , 113*b0d29bc4SBrooks Davisbut typically the file will be stored within the user's home directory. 114*b0d29bc4SBrooks Davis.It Fl -loglevel Ar level 115*b0d29bc4SBrooks DavisSpecifies the maximum logging level to record in the log file. 116*b0d29bc4SBrooks DavisSee 117*b0d29bc4SBrooks Davis.Sx Logging 118*b0d29bc4SBrooks Davisfor more details. 119*b0d29bc4SBrooks Davis.Pp 120*b0d29bc4SBrooks DavisThe default is 121*b0d29bc4SBrooks Davis.Sq info . 122*b0d29bc4SBrooks Davis.It Fl -variable Ar name=value , Fl v Ar name=value 123*b0d29bc4SBrooks DavisSets the 124*b0d29bc4SBrooks Davis.Ar name 125*b0d29bc4SBrooks Davisconfiguration variable to 126*b0d29bc4SBrooks Davis.Ar value . 127*b0d29bc4SBrooks DavisThe values set through this option have preference over the values set in the 128*b0d29bc4SBrooks Davisconfiguration file. 129*b0d29bc4SBrooks Davis.Pp 130*b0d29bc4SBrooks DavisThe specified variable can either be a builtin variable or a test-suite 131*b0d29bc4SBrooks Davisspecific variable. 132*b0d29bc4SBrooks DavisSee 133*b0d29bc4SBrooks Davis.Xr kyua.conf 5 134*b0d29bc4SBrooks Davisfor more details. 135*b0d29bc4SBrooks Davis.El 136*b0d29bc4SBrooks Davis.Pp 137*b0d29bc4SBrooks DavisThe following commands are generic and do not have any relation to the execution 138*b0d29bc4SBrooks Davisof tests or the inspection of their results: 139*b0d29bc4SBrooks Davis.Bl -tag -width reportXjunitXX -offset indent 140*b0d29bc4SBrooks Davis.It Ar about 141*b0d29bc4SBrooks DavisShows general program information. 142*b0d29bc4SBrooks DavisSee 143*b0d29bc4SBrooks Davis.Xr kyua-about 1 . 144*b0d29bc4SBrooks Davis.It Ar config 145*b0d29bc4SBrooks DavisInspects the values of the configuration variables. 146*b0d29bc4SBrooks DavisSee 147*b0d29bc4SBrooks Davis.Xr kyua-config 1 . 148*b0d29bc4SBrooks Davis.It Ar db-exec 149*b0d29bc4SBrooks DavisExecutes an arbitrary SQL statement on a results file and prints the 150*b0d29bc4SBrooks Davisresulting table. 151*b0d29bc4SBrooks DavisSee 152*b0d29bc4SBrooks Davis.Xr kyua-db-exec 1 . 153*b0d29bc4SBrooks Davis.It Ar help 154*b0d29bc4SBrooks DavisShows usage information. 155*b0d29bc4SBrooks DavisSee 156*b0d29bc4SBrooks Davis.Xr kyua-help 1 . 157*b0d29bc4SBrooks Davis.El 158*b0d29bc4SBrooks Davis.Pp 159*b0d29bc4SBrooks DavisThe following commands are used to generate reports based on the data previously 160*b0d29bc4SBrooks Davisrecorded in a results file: 161*b0d29bc4SBrooks Davis.Bl -tag -width reportXjunitXX -offset indent 162*b0d29bc4SBrooks Davis.It Ar report 163*b0d29bc4SBrooks DavisGenerates a plaintext report. 164*b0d29bc4SBrooks DavisCombined with its 165*b0d29bc4SBrooks Davis.Fl -verbose 166*b0d29bc4SBrooks Davisflag and the ability to only display specific test cases, this command can also 167*b0d29bc4SBrooks Davisbe used to debug test failures post-facto on the console. 168*b0d29bc4SBrooks DavisSee 169*b0d29bc4SBrooks Davis.Xr kyua-report 1 . 170*b0d29bc4SBrooks Davis.It Ar report-html 171*b0d29bc4SBrooks DavisGenerates an HTML report. 172*b0d29bc4SBrooks DavisSee 173*b0d29bc4SBrooks Davis.Xr kyua-report-html 1 . 174*b0d29bc4SBrooks Davis.It Ar report-junit 175*b0d29bc4SBrooks DavisGenerates a JUnit report. 176*b0d29bc4SBrooks DavisSee 177*b0d29bc4SBrooks Davis.Xr kyua-report-junit 1 . 178*b0d29bc4SBrooks Davis.El 179*b0d29bc4SBrooks Davis.Pp 180*b0d29bc4SBrooks DavisThe following commands are used to interact with a test suite: 181*b0d29bc4SBrooks Davis.Bl -tag -width reportXjunitXX -offset indent 182*b0d29bc4SBrooks Davis.It Ar debug 183*b0d29bc4SBrooks DavisExecutes a single test case in a controlled environment for debugging purposes. 184*b0d29bc4SBrooks DavisSee 185*b0d29bc4SBrooks Davis.Xr kyua-debug 1 . 186*b0d29bc4SBrooks Davis.It Ar list 187*b0d29bc4SBrooks DavisLists test cases defined in a test suite by a 188*b0d29bc4SBrooks Davis.Xr kyuafile 5 189*b0d29bc4SBrooks Davisand, optionally, displays their metadata. 190*b0d29bc4SBrooks DavisSee 191*b0d29bc4SBrooks Davis.Xr kyua-list 1 . 192*b0d29bc4SBrooks Davis.It Ar test 193*b0d29bc4SBrooks DavisRuns tests defined in a test suite by a 194*b0d29bc4SBrooks Davis.Xr kyuafile 5 . 195*b0d29bc4SBrooks DavisSee 196*b0d29bc4SBrooks Davis.Xr kyua-test 1 . 197*b0d29bc4SBrooks Davis.El 198*b0d29bc4SBrooks Davis.Ss Logging 199*b0d29bc4SBrooks Davis.Nm 200*b0d29bc4SBrooks Davishas a logging facility that collects all kinds of events at run time. 201*b0d29bc4SBrooks DavisThese events are always logged to a file so that the log is available when 202*b0d29bc4SBrooks Davisit is most needed: right after a non-reproducible problem happens. 203*b0d29bc4SBrooks DavisThe only way to disable logging is by sending the log to 204*b0d29bc4SBrooks Davis.Pa /dev/null . 205*b0d29bc4SBrooks Davis.Pp 206*b0d29bc4SBrooks DavisThe location of the log file can be manually specified with the 207*b0d29bc4SBrooks Davis.Fl -logfile 208*b0d29bc4SBrooks Davisoption, which applies to all commands. 209*b0d29bc4SBrooks DavisIf no file is explicitly specified, the location of the log files is chosen in 210*b0d29bc4SBrooks Davisthis order: 211*b0d29bc4SBrooks Davis.Bl -enum -offset indent 212*b0d29bc4SBrooks Davis.It 213*b0d29bc4SBrooks Davis.Pa ${HOME}/.kyua/logs/ 214*b0d29bc4SBrooks Davisif 215*b0d29bc4SBrooks Davis.Va HOME 216*b0d29bc4SBrooks Davisis defined. 217*b0d29bc4SBrooks Davis.It 218*b0d29bc4SBrooks Davis.Pa ${TMPDIR}/ 219*b0d29bc4SBrooks Davisif 220*b0d29bc4SBrooks Davis.Va TMPDIR 221*b0d29bc4SBrooks Davisis defined. 222*b0d29bc4SBrooks Davis.It 223*b0d29bc4SBrooks Davis.Pa /tmp/ . 224*b0d29bc4SBrooks Davis.El 225*b0d29bc4SBrooks Davis.Pp 226*b0d29bc4SBrooks DavisAnd the default naming scheme of the log files is: 227*b0d29bc4SBrooks Davis.Sq <progname>.<timestamp>.log . 228*b0d29bc4SBrooks Davis.Pp 229*b0d29bc4SBrooks DavisThe messages stored in the log file have a level (or severity) attached to 230*b0d29bc4SBrooks Davisthem. 231*b0d29bc4SBrooks DavisThese are: 232*b0d29bc4SBrooks Davis.Bl -tag -width warningXX -offset indent 233*b0d29bc4SBrooks Davis.It error 234*b0d29bc4SBrooks DavisFatal error messages. 235*b0d29bc4SBrooks DavisThe program generally terminates after these, either in a clean manner or by 236*b0d29bc4SBrooks Daviscrashing. 237*b0d29bc4SBrooks Davis.It warning 238*b0d29bc4SBrooks DavisNon-fatal error messages. 239*b0d29bc4SBrooks DavisThese generally report a condition that must be addressed but the application 240*b0d29bc4SBrooks Daviscan continue to run. 241*b0d29bc4SBrooks Davis.It info 242*b0d29bc4SBrooks DavisInformational messages. 243*b0d29bc4SBrooks DavisThese tell the user what the program was doing at a general level of 244*b0d29bc4SBrooks Davisoperation. 245*b0d29bc4SBrooks Davis.It debug 246*b0d29bc4SBrooks DavisDetailed informational messages. 247*b0d29bc4SBrooks DavisThese are often useful when debugging problems in the application, as they 248*b0d29bc4SBrooks Daviscontain lots of internal details. 249*b0d29bc4SBrooks Davis.El 250*b0d29bc4SBrooks Davis.Pp 251*b0d29bc4SBrooks DavisThe default log level is 252*b0d29bc4SBrooks Davis.Sq info 253*b0d29bc4SBrooks Davisunless explicitly overridden with 254*b0d29bc4SBrooks Davis.Fl -loglevel . 255*b0d29bc4SBrooks Davis.Pp 256*b0d29bc4SBrooks DavisThe log file is a plain text file containing one line per log record. 257*b0d29bc4SBrooks DavisThe format of each line is as follows: 258*b0d29bc4SBrooks Davis.Bd -literal -offset indent 259*b0d29bc4SBrooks Davistimestamp entry_type pid file:line: message 260*b0d29bc4SBrooks Davis.Ed 261*b0d29bc4SBrooks Davis.Pp 262*b0d29bc4SBrooks Davis.Ar entry_type 263*b0d29bc4SBrooks Daviscan be one of: 264*b0d29bc4SBrooks Davis.Sq E 265*b0d29bc4SBrooks Davisfor an error, 266*b0d29bc4SBrooks Davis.Sq W 267*b0d29bc4SBrooks Davisfor a warning, 268*b0d29bc4SBrooks Davis.Sq I 269*b0d29bc4SBrooks Davisfor an informational message and 270*b0d29bc4SBrooks Davis.Sq D 271*b0d29bc4SBrooks Davisfor a debug message. 272*b0d29bc4SBrooks Davis.Ss Bug reporting 273*b0d29bc4SBrooks DavisIf you think you have encountered a bug in 274*b0d29bc4SBrooks Davis.Nm , 275*b0d29bc4SBrooks Davisplease take the time to let the developers know about it. 276*b0d29bc4SBrooks DavisThis will ensure that the bug is addressed and potentially fixed in the next 277*b0d29bc4SBrooks DavisKyua release. 278*b0d29bc4SBrooks Davis.Pp 279*b0d29bc4SBrooks DavisThe first step in reporting a bug is to check if there already is a similar 280*b0d29bc4SBrooks Davisbug in the database. 281*b0d29bc4SBrooks DavisYou can check what issues are currently in the database by going to: 282*b0d29bc4SBrooks Davis.Bd -literal -offset indent 283*b0d29bc4SBrooks Davishttps://github.com/jmmv/kyua/issues/ 284*b0d29bc4SBrooks Davis.Ed 285*b0d29bc4SBrooks Davis.Pp 286*b0d29bc4SBrooks DavisIf there is no existing issue that describes an issue similar to the 287*b0d29bc4SBrooks Davisone you are experiencing, you can open a new one by visiting: 288*b0d29bc4SBrooks Davis.Bd -literal -offset indent 289*b0d29bc4SBrooks Davishttps://github.com/jmmv/kyua/issues/new/ 290*b0d29bc4SBrooks Davis.Ed 291*b0d29bc4SBrooks Davis.Pp 292*b0d29bc4SBrooks DavisWhen doing so, please include as much detail as possible. 293*b0d29bc4SBrooks DavisAmong other things, explain what operating system and platform you are running 294*b0d29bc4SBrooks Davis.Nm 295*b0d29bc4SBrooks Davison, what were you trying to do, what exact messages you saw on the screen, 296*b0d29bc4SBrooks Davishow did you expect the program to behave, and any other details that you 297*b0d29bc4SBrooks Davismay find relevant. 298*b0d29bc4SBrooks Davis.Pp 299*b0d29bc4SBrooks DavisAlso, please include a copy of the log file corresponding to the problem 300*b0d29bc4SBrooks Davisyou are experiencing. 301*b0d29bc4SBrooks DavisUnless you have changed the location of the log files, you can most likely 302*b0d29bc4SBrooks Davisfind them in 303*b0d29bc4SBrooks Davis.Pa ~/.kyua/logs/ . 304*b0d29bc4SBrooks DavisIf the problem is reproducible, it is good idea to regenerate the log file 305*b0d29bc4SBrooks Daviswith an increased log level so as to provide more information. 306*b0d29bc4SBrooks DavisFor example: 307*b0d29bc4SBrooks Davis.Bd -literal -offset indent 308*b0d29bc4SBrooks Davis$ kyua --logfile=problem.log --loglevel=debug \\ 309*b0d29bc4SBrooks Davis [rest of the command line] 310*b0d29bc4SBrooks Davis.Ed 311*b0d29bc4SBrooks Davis.Sh ENVIRONMENT 312*b0d29bc4SBrooks DavisThe following variables are recognized and can be freely tuned by the end user: 313*b0d29bc4SBrooks Davis.Bl -tag -width COLUMNSXX 314*b0d29bc4SBrooks Davis.It Va COLUMNS 315*b0d29bc4SBrooks DavisThe width of the screen, in number of characters. 316*b0d29bc4SBrooks Davis.Nm 317*b0d29bc4SBrooks Davisuses this to wrap long lines. 318*b0d29bc4SBrooks DavisIf not present, the width of the screen is determined from the terminal 319*b0d29bc4SBrooks Davisstdout is connected to, and, if the guessing fails, this defaults to infinity. 320*b0d29bc4SBrooks Davis.It Va HOME 321*b0d29bc4SBrooks DavisPath to the user's home directory. 322*b0d29bc4SBrooks Davis.Nm 323*b0d29bc4SBrooks Davisuses this location to determine paths to configuration files and default log 324*b0d29bc4SBrooks Davisfiles. 325*b0d29bc4SBrooks Davis.It Va TMPDIR 326*b0d29bc4SBrooks DavisPath to the system-wide temporary directory. 327*b0d29bc4SBrooks Davis.Nm 328*b0d29bc4SBrooks Davisuses this location to place the work directory of test cases, among other 329*b0d29bc4SBrooks Davisthings. 330*b0d29bc4SBrooks Davis.Pp 331*b0d29bc4SBrooks DavisThe default value of this variable depends on the operating system. 332*b0d29bc4SBrooks DavisIn general, it is 333*b0d29bc4SBrooks Davis.Pa /tmp . 334*b0d29bc4SBrooks Davis.El 335*b0d29bc4SBrooks Davis.Pp 336*b0d29bc4SBrooks DavisThe following variables are also recognized, but you should not need to set them 337*b0d29bc4SBrooks Davisduring normal operation. 338*b0d29bc4SBrooks DavisThey are only provided to override the value of built-in values, which is useful 339*b0d29bc4SBrooks Daviswhen testing 340*b0d29bc4SBrooks Davis.Nm 341*b0d29bc4SBrooks Davisitself: 342*b0d29bc4SBrooks Davis.Bl -tag -width KYUAXCONFDIRXX 343*b0d29bc4SBrooks Davis.It Va KYUA_CONFDIR 344*b0d29bc4SBrooks DavisPath to the system-wide configuration files for 345*b0d29bc4SBrooks Davis.Nm . 346*b0d29bc4SBrooks Davis.Pp 347*b0d29bc4SBrooks DavisDefaults to 348*b0d29bc4SBrooks Davis.Pa __CONFDIR__ . 349*b0d29bc4SBrooks Davis.It Va KYUA_DOCDIR 350*b0d29bc4SBrooks DavisPath to the location of installed documentation. 351*b0d29bc4SBrooks Davis.Pp 352*b0d29bc4SBrooks DavisDefaults to 353*b0d29bc4SBrooks Davis.Pa __DOCDIR__ . 354*b0d29bc4SBrooks Davis.It Va KYUA_MISCDIR 355*b0d29bc4SBrooks DavisPath to the location of the installed miscellaneous scripts and data 356*b0d29bc4SBrooks Davisfiles provided by 357*b0d29bc4SBrooks Davis.Nm . 358*b0d29bc4SBrooks Davis.Pp 359*b0d29bc4SBrooks DavisDefaults to 360*b0d29bc4SBrooks Davis.Pa __MISCDIR__ . 361*b0d29bc4SBrooks Davis.It Va KYUA_STOREDIR 362*b0d29bc4SBrooks DavisPath to the location of the installed store support files; e.g., the 363*b0d29bc4SBrooks Davisdirectory containing the SQL database schema. 364*b0d29bc4SBrooks Davis.Pp 365*b0d29bc4SBrooks DavisDefaults to 366*b0d29bc4SBrooks Davis.Pa __STOREDIR__ . 367*b0d29bc4SBrooks Davis.El 368*b0d29bc4SBrooks Davis.Sh FILES 369*b0d29bc4SBrooks Davis.Bl -tag -width XXXX 370*b0d29bc4SBrooks Davis.It Pa ~/.kyua/store/ 371*b0d29bc4SBrooks DavisDefault location for the results files. 372*b0d29bc4SBrooks Davis.It Pa ~/.kyua/kyua.conf 373*b0d29bc4SBrooks DavisUser-specific configuration file. 374*b0d29bc4SBrooks Davis.It Pa ~/.kyua/logs/ 375*b0d29bc4SBrooks DavisDefault location for the collected log files. 376*b0d29bc4SBrooks Davis.It Pa __CONFDIR__/kyua.conf 377*b0d29bc4SBrooks DavisSystem-wide configuration file. 378*b0d29bc4SBrooks Davis.El 379*b0d29bc4SBrooks Davis.Sh EXIT STATUS 380*b0d29bc4SBrooks Davis.Nm 381*b0d29bc4SBrooks Davisreturns 0 on success, 1 on a controlled error condition in the given 382*b0d29bc4SBrooks Davissubcommand, 2 on a general unexpected error and 3 on a usage error. 383*b0d29bc4SBrooks Davis.Pp 384*b0d29bc4SBrooks DavisThe documentation of the subcommands in the corresponding manual pages only 385*b0d29bc4SBrooks Davisdetails the difference between a successful exit (0) and the detection of a 386*b0d29bc4SBrooks Daviscontrolled error (1). 387*b0d29bc4SBrooks DavisEven though when those manual pages do not describe any other exit statuses, 388*b0d29bc4SBrooks Daviscodes above 1 can be returned. 389*b0d29bc4SBrooks Davis.Sh SEE ALSO 390*b0d29bc4SBrooks Davis.Xr kyua.conf 5 , 391*b0d29bc4SBrooks Davis.Xr kyuafile 5 , 392*b0d29bc4SBrooks Davis.Xr atf 7 , 393*b0d29bc4SBrooks Davis.Xr tests 7 394*b0d29bc4SBrooks Davis.Sh AUTHORS 395*b0d29bc4SBrooks DavisFor more details on the people that made 396*b0d29bc4SBrooks Davis.Nm 397*b0d29bc4SBrooks Davispossible and the license terms, run: 398*b0d29bc4SBrooks Davis.Bd -literal -offset indent 399*b0d29bc4SBrooks Davis$ kyua about 400*b0d29bc4SBrooks Davis.Ed 401