From regress.bat to runregress

Requirements

Configuration

The deployment tool should create the required configuration, as with regress.bat. You will notice some new options in the deployment tool. The compareProgram option does not apply to runregress, it is superceded by report_types.

The configuration file created by the deployment tool is regress.ini. After deployment, you can make further configuration changes yourself. Anything you add to local.ini will override the generated regress.ini, so you should use that for long-term local changes. (You can change the configuration file(s) used on the command line, but this is the default.)

The argument on the command line names the chosen configuration, by identifying a block to load from each configuration file. This block consists of a line [configuration_name], followed by lines of the form name=value. A global block starting [*] is always loaded. With -setup, you may omit the configuration name, and only the global block is loaded: with the deployed configuration file, all the required variables for a setup run are included there.

With one exception, runregress supports all of the configuration variables of regress.bat and more. The exception is compare, which has been superceded by report.

Running

Usage: runregress supports all of the command line options of regress.bat and more.

Documentation is available using the option -help (or -h or -?). The same information is provided in HTML in the deployed directory.

With one exception, the behaviour of runregress currently mimics that of runregress.bat in all important respects. This is expected to change in the future as new functionality is added to runregress and regress.bat gets left behind.

The major exception to this emulation is in generating reports.

There are other minor differences in behaviour, but hopefully these are all straight improvements. For example, runregress handles errors more robustly.

Generating reports

By default, regress.bat launches Beyond Compare on completion. This is changed for runregress: the default behaviour is now to write a summary of the results to standard output. This change is necessary since runregress is intended to be portable and the availability of Beyond Compare cannot be assumed.

To generate another type of report, use the command line option -report (or -r) or the configuration variable report. You can generate multiple reports using a comma- or space-separated list. To see a list of available types and their descriptions, use the option -listreports. To restore the launching of Beyond Compare, where available, you can use -r BC2.

On linux, the xxdiff report type provides a similar functionality, using the tool of that name. Of course, you need to be either running the suite locally or via a ssh connection with X-forwarding.

One new feature of runregress is the option to generate reports on a suite you have previously run. To do this, use the option -norun (-n).

Another new feature is the checking of setup runs. Where regress.bat ignores the output of setup queries, runregress checks for errors.

Notes

Perl modules used

ModuleStatus
Config::SimpleRequired
CwdRequired
ExporterRequired
File::CompareRequired
File::CopyRequired
File::PathRequired
File::Spec::FunctionsRequired
Getopt::LongRequired
IPC::RunRequired
Pod::UsageRequired
POSIXRequired
Text::DiffRequired by the Diff and DiffFull report types
HTML::EntitiesRequired by the HTML report type
Text::Diff::HTMLRequired by the HTML report type
TemplateRequired by the HTML report type
Term::PromptRequired if you do not specify a password in the configuration file
Sys::HostnameRecommended: if available, and it can find the hostname, the hostname will be logged
Text::WrapOptional: if available, makes output of -listreports neater

Adding directories to perl's module path

There are (at least) three ways to add dir to @INC.

Running a shebanged perl script