=================================================================== RCS file: /cvs/mandoc/regress/regress.pl.1,v retrieving revision 1.2 retrieving revision 1.5 diff -u -p -r1.2 -r1.5 --- mandoc/regress/regress.pl.1 2017/03/05 19:57:39 1.2 +++ mandoc/regress/regress.pl.1 2020/03/13 15:32:31 1.5 @@ -1,6 +1,6 @@ -.\" $Id: regress.pl.1,v 1.2 2017/03/05 19:57:39 schwarze Exp $ +.\" $Id: regress.pl.1,v 1.5 2020/03/13 15:32:31 schwarze Exp $ .\" -.\" Copyright (c) 2017 Ingo Schwarze +.\" Copyright (c) 2017, 2019, 2020 Ingo Schwarze .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: March 5 2017 $ +.Dd $Mdocdate: March 13 2020 $ .Dt REGRESS.PL 1 .Os .Sh NAME @@ -23,7 +23,7 @@ .Sh SYNOPSIS .Nm ./regress.pl .Oo -.Ar directory Ns Op Pf : Ar test +.Ar directory Ns Op Pf / Ar test .Op Ar modifier ... .Oc .Sh DESCRIPTION @@ -32,29 +32,18 @@ The steering script allows running the .Xr mandoc 1 regression suite on arbitrary operating systems, -even though the suite was designed for OpenBSD only. +even though the suite was originally designed for OpenBSD only. .Pp When run without an argument, .Nm runs the complete regression suite. .Pp -When run with one argument, that argument can be: -.Bl -enum -.It -A single dot to run the complete suite. -.It -One of the top level directories, for example -.Pa mdoc , -to run the test suite for a complete language or feature group. -.It -A subdirectory, for example -.Pa man/IP , -to run the tests for a specific macro or an individual feature. -.It -A subdirectory with a test name appended with a colon, for example -.Pa char/unicode : Ns Pa named , -to run the tests for one particular input file. -.El +The first argument is a Perl regular expression to match test names, +automatically anchored at the beginning of the names. +Test names are names of test input files without the file name extension +.Pa .in , +for example +.Pa char/unicode/named . .Pp Any additional arguments modify the way the tests are run. The default is @@ -89,6 +78,8 @@ output mode. Run subtests for .Fl T Cm markdown output mode. +.It Cm tag +Run subtests for automatic and manual tagging. .It Cm utf8 Run subtests for .Fl T Cm utf8 @@ -96,35 +87,6 @@ output mode. .It Cm verbose Display approximate indications of what is being done. .El -.Pp -The amount of summary lines shown can be modified by giving an -argument consisting of a single digit: -.Bl -tag -width verbose -.It Cm 3 -Show all summary lines for all directories entered. -Even without -.Cm verbose , -this generates more than hundred lines of output when running the -complete regression suite. -.It Cm 2 -This is the default. -It shows the summary lines for the -.Ar directory -given on the command line and its immediate children. -Except for -.Pa mdoc , -the output usually fits on one screen. -.It Cm 1 -Only show a single summary line for the whole run. -.It Cm 0 -Do not show any summary lines. -No output means success. -Success or failure can also be seen from the exit status. -.El -.Pp -All failed tests are always reported, even when the -.Cm 0 -modifier is given. .Sh EXIT STATUS .Ex -std .Sh EXAMPLES @@ -140,15 +102,9 @@ Complete check, but keep the tree clean: .Pp .Dl ./regress.pl \&. all clean .Pp -Test all of -.Pa mdoc , -but don't print the usual 65 lines of output: -.Pp -.Dl ./regress.pl mdoc 1 -.Pp Investigate a specific failure: .Pp -.Dl ./regress.pl mdoc/Bd:broken man verbose +.Dl ./regress.pl mdoc/Bd/broken man verbose .Sh HISTORY The .Nm @@ -191,3 +147,12 @@ The subdirectory of the regression suite is not included. It uses a Makefile structure that differs vastly from the rest of the suite. +.Sh BUGS +The C library function +.Xr wcwidth 3 +is known to be buggy on Solaris, which may cause failures in the +regression suite, usually because output lines containing affected +Unicode characters wrap too early. +.Pp +The regression suite does not work at all on Solaris 10 or earlier +because the Perl interpreter provided with those systems is too old.