1f56169f4SRui Paulo.\" $FreeBSD$ 2f56169f4SRui Paulo.\" $NetBSD: tests.kyua.7,v 1.2 2013/07/20 21:39:59 wiz Exp $ 3f56169f4SRui Paulo.\" 4f56169f4SRui Paulo.\" Copyright (c) 2010 The NetBSD Foundation, Inc. 5f56169f4SRui Paulo.\" All rights reserved. 6f56169f4SRui Paulo.\" 7f56169f4SRui Paulo.\" Redistribution and use in source and binary forms, with or without 8f56169f4SRui Paulo.\" modification, are permitted provided that the following conditions 9f56169f4SRui Paulo.\" are met: 10f56169f4SRui Paulo.\" 1. Redistributions of source code must retain the above copyright 11f56169f4SRui Paulo.\" notice, this list of conditions and the following disclaimer. 12f56169f4SRui Paulo.\" 2. Redistributions in binary form must reproduce the above copyright 13f56169f4SRui Paulo.\" notice, this list of conditions and the following disclaimer in the 14f56169f4SRui Paulo.\" documentation and/or other materials provided with the distribution. 15f56169f4SRui Paulo.\" 16f56169f4SRui Paulo.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND 17f56169f4SRui Paulo.\" CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 18f56169f4SRui Paulo.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19f56169f4SRui Paulo.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 20f56169f4SRui Paulo.\" IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY 21f56169f4SRui Paulo.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22f56169f4SRui Paulo.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 23f56169f4SRui Paulo.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24f56169f4SRui Paulo.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25f56169f4SRui Paulo.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 26f56169f4SRui Paulo.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27f56169f4SRui Paulo.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28f56169f4SRui Paulo.\" 290dfb59abSMateusz Piotrowski.Dd August 19, 2020 30f56169f4SRui Paulo.Dt TESTS 7 31f56169f4SRui Paulo.Os 32f56169f4SRui Paulo.Sh NAME 33f56169f4SRui Paulo.Nm tests 34fb77db09SEnji Cooper.Nd introduction to the 35fb77db09SEnji Cooper.Fx 36fb77db09SEnji CooperTest Suite 37f56169f4SRui Paulo.Sh DESCRIPTION 38f56169f4SRui PauloThe 39f56169f4SRui Paulo.Fx 40985e53cfSJulio MerinoTest Suite provides a collection of automated tests for two major purposes. 41b2b6c6a8SAlan SomersOn one hand, the test suite aids 42f56169f4SRui Paulo.Em developers 43fb77db09SEnji Cooperto detect bugs and regressions when they modify the source tree. 44fb77db09SEnji CooperOn the other hand, it allows 45f56169f4SRui Paulo.Em end users 46f56169f4SRui Paulo(and, in particular, system administrators) to verify that fresh installations 47f56169f4SRui Pauloof the 48f56169f4SRui Paulo.Fx 49b2b6c6a8SAlan Somersoperating system behave correctly on their hardware platform and also to ensure 50b2b6c6a8SAlan Somersthat the system does not suffer from regressions during regular operation and 51b2b6c6a8SAlan Somersmaintenance. 52f56169f4SRui Paulo.Pp 53f56169f4SRui PauloThe 54f56169f4SRui Paulo.Fx 55985e53cfSJulio MerinoTest Suite can be found in the 56f56169f4SRui Paulo.Pa /usr/tests 57f56169f4SRui Paulohierarchy. 58f56169f4SRui Paulo.Pp 59b2b6c6a8SAlan SomersThis manual page describes how to run the test suite and how to configure 60f56169f4SRui Paulosome of its optional features. 611cedef8fSEdward Tomasz NapieralaFor information on writing the tests, see 621cedef8fSEdward Tomasz Napierala.Xr atf 7 . 63e1c6a283SJulio Merino.Ss Installing the test suite 64e1c6a283SJulio MerinoIf the 65e1c6a283SJulio Merino.Pa /usr/tests 66e1c6a283SJulio Merinodirectory is missing, then you will have to enable the build of the test 67e1c6a283SJulio Merinosuite, rebuild your system and install the results. 68e1c6a283SJulio MerinoYou can do so by setting 69e1c6a283SJulio Merino.Sq WITH_TESTS=yes 70e1c6a283SJulio Merinoin your 71e1c6a283SJulio Merino.Pa /etc/src.conf 72e1c6a283SJulio Merinofile (see 73e1c6a283SJulio Merino.Xr src.conf 5 74e1c6a283SJulio Merinofor details) 75e1c6a283SJulio Merinoand rebuilding the system as described in 76e1c6a283SJulio Merino.Xr build 7 . 77f56169f4SRui Paulo.Ss When to run the tests? 78f56169f4SRui PauloBefore diving into the details of how to run the test suite, here are some 79b2b6c6a8SAlan Somersscenarios in which you should run it: 80f56169f4SRui Paulo.Bl -bullet -offset indent 81f56169f4SRui Paulo.It 82f56169f4SRui PauloAfter a fresh installation of 83f56169f4SRui Paulo.Fx 84f56169f4SRui Pauloto ensure that the system works correctly on your hardware platform. 85f56169f4SRui Paulo.It 86f56169f4SRui PauloAfter an upgrade of 87f56169f4SRui Paulo.Fx 88f56169f4SRui Pauloto a different version to ensure that the new code works well on your 89f56169f4SRui Paulohardware platform and that the upgrade did not introduce regressions in your 90f56169f4SRui Pauloconfiguration. 91f56169f4SRui Paulo.It 92b2b6c6a8SAlan SomersAfter modifying the source tree to detect any new bugs and/or regressions. 93f56169f4SRui Paulo.It 94f56169f4SRui PauloPeriodically, maybe from a 95f56169f4SRui Paulo.Xr cron 8 96f56169f4SRui Paulojob, to ensure that any changes to the system (such as the installation of 97f56169f4SRui Paulothird-party packages or manual modifications to configuration files) do not 98f56169f4SRui Paulointroduce unexpected failures. 99f56169f4SRui Paulo.El 100f56169f4SRui Paulo.Ss Running the tests 10197a4bf80SLi-Wen HsuUse the following command to run the whole test suite: 102f56169f4SRui Paulo.Bd -literal -offset indent 103f56169f4SRui Paulo$ kyua test -k /usr/tests/Kyuafile 104f56169f4SRui Paulo.Ed 105f56169f4SRui Paulo.Pp 106b2b6c6a8SAlan SomersThe above will iterate through all test programs in 107f56169f4SRui Paulo.Pa /usr/tests 108b2b6c6a8SAlan Somersrecursively, execute them, store their results and debugging data in Kyua's 109f56169f4SRui Paulodatabase (by default in 110f56169f4SRui Paulo.Pa ~/.kyua/store.db ) , 111f56169f4SRui Pauloand print a summary of the results. 112f56169f4SRui PauloThis summary includes a brief count of all total tests run and how many of 113f56169f4SRui Paulothem failed. 114f56169f4SRui Paulo.Pp 115f56169f4SRui PauloIt is possible to restrict which tests to run by providing their names in 116f56169f4SRui Paulothe command line. 117f56169f4SRui PauloFor example, this would execute the tests for the 118f56169f4SRui Paulo.Xr cp 1 119f56169f4SRui Pauloand 120f56169f4SRui Paulo.Xr cut 1 121f56169f4SRui Pauloutilities: 122f56169f4SRui Paulo.Bd -literal -offset indent 123f56169f4SRui Paulo$ kyua test -k /usr/tests/Kyuafile bin/cp usr.bin/cut 124f56169f4SRui Paulo.Ed 125f56169f4SRui Paulo.Ss Obtaining reports of the tests execution 126b2b6c6a8SAlan SomersAdditional information about the test results can be retrieved 127b2b6c6a8SAlan Somersby using Kyua's various reporting commands. 128b2b6c6a8SAlan SomersFor example, the following would print a plain-text report of the executed 129f56169f4SRui Paulotests and show which ones failed: 130f56169f4SRui Paulo.Bd -literal -offset indent 131*50dd2ceaSJohn-Mark Gurney$ kyua report --verbose -r <.db file from output of test> 132f56169f4SRui Paulo.Ed 133f56169f4SRui Paulo.Pp 134b2b6c6a8SAlan SomersThis example would generate an HTML report ready to be published on a 135f56169f4SRui Pauloweb server: 136f56169f4SRui Paulo.Bd -literal -offset indent 137f56169f4SRui Paulo$ kyua report-html --output ~/public_html/tests 138f56169f4SRui Paulo.Ed 139f56169f4SRui Paulo.Pp 140f56169f4SRui PauloFor further details on the command-line interface of Kyua, please refer 141f56169f4SRui Pauloto its manual page 142f56169f4SRui Paulo.Xr kyua 1 . 143b2b6c6a8SAlan Somers.Ss Configuring the tests 144b2b6c6a8SAlan SomersSome test cases in the 145b2b6c6a8SAlan Somers.Fx 146985e53cfSJulio MerinoTest Suite require manual configuration by the administrator before they can be 1478fea68c6SEnji Cooperrun. 1488fea68c6SEnji CooperUnless certain properties are defined, the tests that require them will be 1498fea68c6SEnji Cooperskipped. 150b2b6c6a8SAlan Somers.Pp 151b2b6c6a8SAlan SomersTest suites are configured by defining their configuration 152b2b6c6a8SAlan Somersvariables in 15397a4bf80SLi-Wen Hsu.Pa /etc/kyua/kyua.conf . 154b2b6c6a8SAlan SomersThe format of this file is detailed in 155b2b6c6a8SAlan Somers.Xr kyua.conf 5 . 156b2b6c6a8SAlan Somers.Pp 157b2b6c6a8SAlan SomersThe following configuration variables are available in the 158b2b6c6a8SAlan Somers.Fx 159985e53cfSJulio MerinoTest Suite: 160b2b6c6a8SAlan Somers.Bl -tag -width "allow_sysctl_side_effects" 161b2b6c6a8SAlan Somers.It allow_devfs_side_effects 162b2b6c6a8SAlan SomersIf defined, enables tests that may destroy and recreate semipermanent device 163fb77db09SEnji Coopernodes, like disk devices. 164fb77db09SEnji CooperWithout this variable, tests may still create and destroy devices nodes that 165fb77db09SEnji Cooperare normally transient, like /dev/tap* and /dev/pts*, as long as they clean 166fb77db09SEnji Cooperthem up afterwards. 167fb77db09SEnji CooperHowever, tests that require this variable have a relaxed cleanup requirement; 168fb77db09SEnji Cooperthey must recreate any devices that they destroyed, but not necessarily with 169fb77db09SEnji Cooperthe same devnames. 170b2b6c6a8SAlan Somers.It allow_sysctl_side_effects 171b2b6c6a8SAlan SomersEnables tests that change globally significant 172b2b6c6a8SAlan Somers.Xr sysctl 8 173fb77db09SEnji Coopervariables. 174fb77db09SEnji CooperThe tests will undo any changes in their cleanup phases. 175b2b6c6a8SAlan Somers.It disks 176fb77db09SEnji CooperMust be set to a space delimited list of disk device nodes. 177fb77db09SEnji CooperTests that need destructive access to disks must use these devices. 178fb77db09SEnji CooperTests are not required to preserve any data present on these disks. 179b2b6c6a8SAlan Somers.It fibs 180fb77db09SEnji CooperMust be set to a space delimited list of FIBs (routing tables). 181fb77db09SEnji CooperTests that need to modify a routing table may use any of these. 182fb77db09SEnji CooperTests will cleanup any new routes that they create. 183b2b6c6a8SAlan Somers.El 184f56169f4SRui Paulo.Ss What to do if something fails? 185f56169f4SRui PauloIf there is 186f56169f4SRui Paulo.Em any failure 187b2b6c6a8SAlan Somersduring the execution of the test suite, please consider reporting it to the 188f56169f4SRui Paulo.Fx 189f56169f4SRui Paulodevelopers so that the failure can be analyzed and fixed. 190f56169f4SRui PauloTo do so, either send a message to the appropriate mailing list or file a 191f56169f4SRui Pauloproblem report. 192f56169f4SRui PauloFor more details please refer to: 193f56169f4SRui Paulo.Bl -bullet -offset indent -compact 194f56169f4SRui Paulo.It 19533f4bccaSEitan Adler.Lk https://lists.freebsd.org/ "FreeBSD Mailing Lists" 196f56169f4SRui Paulo.It 1978dfb0024SLi-Wen Hsu.Lk https://www.freebsd.org/support/ "Problem Reporting" 198f56169f4SRui Paulo.El 199f56169f4SRui Paulo.Sh FILES 20097a4bf80SLi-Wen Hsu.Bl -tag -compact -width "/etc/kyua/kyua.conf" 20197a4bf80SLi-Wen Hsu.It Pa /etc/kyua/kyua.conf 202f56169f4SRui PauloSystem-wide configuration file for 203f56169f4SRui Paulo.Xr kyua 1 . 204f56169f4SRui Paulo.It Pa ~/.kyua/kyua.conf 205f56169f4SRui PauloUser-specific configuration file for 206f56169f4SRui Paulo.Xr kyua 1 ; 207f56169f4SRui Paulooverrides the system file. 208f56169f4SRui Paulo.It Pa ~/.kyua/store.db 209b2b6c6a8SAlan SomersDefault result database used by Kyua. 210f56169f4SRui Paulo.It Pa /usr/tests/ 211f56169f4SRui PauloLocation of the 212f56169f4SRui Paulo.Fx 213985e53cfSJulio MerinoTest Suite. 214f56169f4SRui Paulo.It Pa /usr/tests/Kyuafile 215f56169f4SRui PauloTop-level test suite definition file. 216f56169f4SRui Paulo.El 217f56169f4SRui Paulo.Sh SEE ALSO 218e1c6a283SJulio Merino.Xr kyua 1 , 2191cedef8fSEdward Tomasz Napierala.Xr atf 7 , 2200dfb59abSMateusz Piotrowski.Xr build 7 , 2210dfb59abSMateusz Piotrowski.Xr development 7 222f56169f4SRui Paulo.Sh HISTORY 223985e53cfSJulio MerinoThe 224985e53cfSJulio Merino.Fx 225985e53cfSJulio MerinoTest Suite first appeared in 22697a4bf80SLi-Wen Hsu.Fx 10.1 22797a4bf80SLi-Wen Hsuand was installed by default in 22897a4bf80SLi-Wen Hsu.Fx 11.0 . 229f56169f4SRui Paulo.Pp 230f56169f4SRui PauloThe 231f56169f4SRui Paulo.Nm 232f56169f4SRui Paulomanual page first appeared in 233f56169f4SRui Paulo.Nx 6.0 234f56169f4SRui Pauloand was later ported to 235985e53cfSJulio Merino.Fx 10.1 . 23697a4bf80SLi-Wen Hsu.Pp 23797a4bf80SLi-Wen HsuThe test driver, 23897a4bf80SLi-Wen Hsu.Xr kyua 1 , 23997a4bf80SLi-Wen Hsuwas imported as part of the base system in 24097a4bf80SLi-Wen Hsu.Fx 13.0 , 24197a4bf80SLi-Wen Hsupreviously being available only in 24297a4bf80SLi-Wen Hsu.Xr ports 7 . 243f56169f4SRui Paulo.Sh AUTHORS 244985e53cfSJulio Merino.An Julio Merino Aq Mt jmmv@FreeBSD.org 245