Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
KYUA(1)			    General Commands Manual		       KYUA(1)

NAME
       kyua -- Testing framework for infrastructure software

SYNOPSIS
       kyua    [--config    file]    [--logfile	  file]	  [--loglevel	level]
	    [--variable	     name=value]       command	     [command_options]
	    [command_arguments]

DESCRIPTION
       If  you	are  here  looking for details on how to run the test suite in
       /usr/tests (or /usr/tests), please start	by reading the tests(7)	manual
       page that should	be supplied by your system.

       Kyua is a testing framework for infrastructure software,	originally de-
       signed 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.

       Kyua features an	expressive test	suite definition language, a safe run-
       time engine for test suites and a powerful report generation engine.

       Kyua is for both	developers and users, from the	developer  applying  a
       simple fix to a library to the system administrator deploying a new re-
       lease on	a production machine.

       Kyua  is	able to	execute	test programs written with a plethora of test-
       ing libraries and languages.  The test program  library	of  choice  is
       ATF, which kyua's design	originated from.  However, framework-less test
       programs	 and  TAP-compliant test programs can also be executed through
       kyua

   Overview
       As can be observed in the synopsis, the interface of kyua 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	 command name that specifies what kyua should do, and a	set of
       possibly-optional command_options and command_arguments that  are  spe-
       cific to	the chosen command.

       The following options are recognized by all the commands.  Keep in mind
       that these must always be specified before the command name.

       --config	path, -c path
	   Specifies  the  configuration file to process, which	must be	in the
	   format described in kyua.conf(5).  The special value	`none' explic-
	   itly	disables the loading of	any configuration file.

	   Defaults  to	 ~/.kyua/kyua.conf  if	 it   exists,	otherwise   to
	   /etc/kyua/kyua.conf if it exists, or	else to	`none'.

       --logfile path
	   Specifies  the location of the file to which	kyua will log run time
	   events useful for postmortem	debugging.

	   The default depends on different environment	variables as described
	   in "Logging", but typically the file	 will  be  stored  within  the
	   user's home directory.

       --loglevel level
	   Specifies the maximum logging level to record in the	log file.  See
	   "Logging" for more details.

	   The default is `info'.

       --variable name=value, -v name=value
	   Sets	 the  name  configuration  variable  to	value.	The values set
	   through this	option have preference over the	values set in the con-
	   figuration file.

	   The specified variable can either be	a builtin variable or a	 test-
	   suite specific variable.  See kyua.conf(5) for more details.

       The  following commands are generic and do not have any relation	to the
       execution of tests or the inspection of their results:

	     about	     Shows   general   program	  information.	   See
			     kyua-about(1).

	     config	     Inspects  the  values  of the configuration vari-
			     ables.  See kyua-config(1).

	     db-exec	     Executes an arbitrary SQL statement on a  results
			     file   and	  prints  the  resulting  table.   See
			     kyua-db-exec(1).

	     help	     Shows usage information.  See kyua-help(1).

       The following commands are used to generate reports based on  the  data
       previously recorded in a	results	file:

	     report	     Generates	a plaintext report.  Combined with its
			     --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 kyua-report(1).

	     report-html     Generates	    an	    HTML      report.	   See
			     kyua-report-html(1).

	     report-junit    Generates	   a	  JUnit	     report.	   See
			     kyua-report-junit(1).

       The following commands are used to interact with	a test suite:

	     debug	     Executes a	single test case in a controlled envi-
			     ronment	 for	debugging    purposes.	   See
			     kyua-debug(1).

	     list	     Lists test	cases defined in a  test  suite	 by  a
			     kyuafile(5) and, optionally, displays their meta-
			     data.  See	kyua-list(1).

	     test	     Runs   tests   defined  in	 a  test  suite	 by  a
			     kyuafile(5).  See kyua-test(1).

   Logging
       kyua 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	 prob-
       lem  happens.  The only way to disable logging is by sending the	log to
       /dev/null.

       The location of the  log	 file  can  be	manually  specified  with  the
       --logfile option, which applies to all commands.	 If no file is explic-
       itly specified, the location of the log files is	chosen in this order:

	     1.	  ${HOME}/.kyua/logs/ if HOME is defined.

	     2.	  ${TMPDIR}/ if	TMPDIR is defined.

	     3.	  /tmp/.

       And    the    default	naming	 scheme	  of   the   log   files   is:
       `<progname>.<timestamp>.log'.

       The messages stored in the log file have	a level	(or severity) attached
       to them.	 These are:

	     error	Fatal error messages.  The  program  generally	termi-
			nates  after  these,  either  in  a clean manner or by
			crashing.

	     warning	Non-fatal error	messages.  These  generally  report  a
			condition  that	 must be addressed but the application
			can continue to	run.

	     info	Informational messages.	 These tell the	user what  the
			program	was doing at a general level of	operation.

	     debug	Detailed informational messages.  These	are often use-
			ful  when  debugging  problems	in the application, as
			they contain lots of internal details.

       The default log level  is  `info'  unless  explicitly  overridden  with
       --loglevel.

       The  log	 file is a plain text file containing one line per log record.
       The format of each line is as follows:

	     timestamp entry_type pid file:line: message

       entry_type can be one of: `E' for an error, `W' for a warning, `I'  for
       an informational	message	and `D'	for a debug message.

   Bug reporting
       If  you	think you have encountered a bug in kyua, 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.

       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:

	     https://github.com/jmmv/kyua/issues/

       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:

	     https://github.com/jmmv/kyua/issues/new/

       When doing so, please include as	much detail as possible.  Among	 other
       things, explain what operating system and platform you are running kyua
       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.

       Also, please include a copy of the log file corresponding to the	 prob-
       lem  you	are experiencing.  Unless you have changed the location	of the
       log files, you can most likely find  them  in  ~/.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 ex-
       ample:

	     $ kyua --logfile=problem.log --loglevel=debug \
		 [rest of the command line]

ENVIRONMENT
       The following variables are recognized and can be freely	tuned  by  the
       end user:

       COLUMNS	  The width of the screen, in number of	characters.  kyua 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.

       HOME	  Path	to the user's home directory.  kyua uses this location
		  to determine paths to	configuration files  and  default  log
		  files.

       TMPDIR	  Path to the system-wide temporary directory.	kyua uses this
		  location  to	place  the work	directory of test cases, among
		  other	things.

		  The default value of this variable depends on	the  operating
		  system.  In general, it is /tmp.

       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 kyua itself:

       KYUA_CONFDIR    Path to the system-wide configuration files for kyua.

		       Defaults	to /etc/kyua.

       KYUA_DOCDIR     Path to the location of installed documentation.

		       Defaults	to /usr/share/doc/kyua.

       KYUA_MISCDIR    Path to the location  of	 the  installed	 miscellaneous
		       scripts and data	files provided by kyua.

		       Defaults	to /usr/share/kyua/misc.

       KYUA_STOREDIR   Path  to	 the  location	of the installed store support
		       files; e.g., the	directory containing the SQL  database
		       schema.

		       Defaults	to /usr/share/kyua/store.

FILES
       ~/.kyua/store/
	     Default location for the results files.

       ~/.kyua/kyua.conf
	     User-specific configuration file.

       ~/.kyua/logs/
	     Default location for the collected	log files.

       /etc/kyua/kyua.conf
	     System-wide configuration file.

EXIT STATUS
       kyua  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  er-
       ror.

       The  documentation of the subcommands in	the corresponding manual pages
       only details the	difference between a successful	exit (0) and  the  de-
       tection of a controlled error (1).  Even	though when those manual pages
       do not describe any other exit statuses,	codes above 1 can be returned.

SEE ALSO
       kyua.conf(5), kyuafile(5), atf(7), tests(7)

AUTHORS
       For  more details on the	people that made kyua possible and the license
       terms, run:

	     $ kyua about

FreeBSD	14.3			 May 12, 2015			       KYUA(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=kyua&sektion=1&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help