NAME
Test::Smoke::Util - Take out some of the functions of the smoke suite.
FUNCTIONS
I've taken out some of the general stuff and put it here. Now I can write some tests!
- Configure_win32( $command[, $win32_maker[, @args]] )
-
Configure_win32()
alters the settings of the makefile for MSWin32.$command
is in the form of './Configure -des -Dusedevel ...'$win32_maker
should either benmake
ordmake
, the default isnmake
.@args
is a list ofoption=value
pairs that will (eventually) be passed to Config.pm.PLEASE read README.win32 and study the comments in the makefile.
It supports these options:
-Duseperlio
set USE_PERLIO = define (default) [should be depricated]
-Dusethreads
set USE_ITHREADS = define (also sets USE_MULTI and USE_IMP_SYS)
-Duseithreads
set USE_ITHREADS = define (also sets USE_MULTI and USE_IMP_SYS)
-Dusemultiplicity
sets USE_MULTI = define (also sets USE_ITHREADS and USE_IMP_SYS)
-Duseimpsys
sets USE_IMP_SYS = define (also sets USE_ITHREADS and USE_MULTI)
-Dusemymalloc
set PERL_MALLOC = define
-Duselargefiles
set USE_LARGE_FILES = define
-Dbccold
set BCCOLD = define (this is for bcc32 <= 5.4)
-Dgcc_v3_2
set USE_GCC_V3_2 = define (this is for gcc >= 3.2)
-DDEBUGGING
sets CFG = Debug
-DINST_DRV=...
sets INST_DRV to a new value (default is "c:")
-DINST_TOP=...
sets INST_DRV to a new value (default is "$(INST_DRV)\perl"), this is where perl will be installed when
[nd]make install
is run.-DINST_VER=...
sets INST_VER to a new value (default is forced not set), this is also used as part of the installation path to get a more unixy installation. Without
INST_VER
andINST_ARCH
you get an ActiveState like installation.-DINST_ARCH=...
sets INST_ARCH to a new value (default is forced not set), this is also used as part of the installation path to get a more unixy installation. Without
INST_VER
andINST_ARCH
you get an ActiveState like installation.-DCCHOME=...
Set the base directory for the C compiler. $(CCHOME)\bin still needs to be in the path!
-DIS_WIN95
sets IS_WIN95 to 'define' to indicate this is Win9[58]
-DCRYPT_SRC=...
The file to use as source for des_fcrypt()
-DCRYPT_LIB=...
The library to use for des_fcrypt()
-Dcf_email=...
Set the cf_email option (Config.pm)
-Accflags=...
Adds the option to BUILDOPT. This is implemented differently for nmake and dmake. Returns the name of the outputfile.
- get_cfg_filename( )
-
get_cfg_filename()
tries to find a cfg file and returns it. - get_config( $filename )
-
Read and parse the configuration from file, or return the default config.
- check_MANIFEST( $path )
-
Read
MANIFEST
from$path
and check against the actual directory contents.check_MANIFEST()
returns a hashref all keys are suspicious files, their value tells wether it should not be there (false) or is missing (true). - get_patch( [$ddir] )
-
Try to find the patchlevel, look for .patch or try to get it from patchlevel.h as a fallback.
- version_from_patchlevel_h( $ddir )
-
version_from_patchlevel_h()
returns a "dotted" version as derived from the patchlevel.h file in the distribution. - get_ncpu( $osname )
-
get_ncpu()
returns the number of available (online/active/enabled) CPUs.It does this by using some operating system specific trick (usually by running some external command and parsing the output).
If it cannot recognize your operating system an empty string is returned. If it can recognize it but the external command failed,
"? cpus"
is returned.In the first case (where we really have no idea how to proceed), also a warning (
get_ncpu: unknown operating system
) is sent to STDERR. - WARNINGS
-
If you get the warning
get_ncpu: unknown operating system
, you will need to help us-- how does one tell the number of available CPUs in your operating system? Sometimes there are several different ways: please try to find the fastest one, and a one that does not require superuser (administrator) rights.Thanks to Jarkko Hietaniemi for donating this!
- get_smoked_Config( $dir, @keys )
-
get_smoked_Config()
returns a hash (a listified hash) with the specified keys. It will try to find lib/Config.pm to get those values, if that cannot be found (make error?) we can try config.sh which is used to build lib/Config.pm. If config.sh is not there (./Configure error?) we try to get some fallback information fromPOSIX::uname()
and patchlevel.h. - parse_report_Config( $report )
-
parse_report_Config()
returns a list attributes from a smoke report.my( $version, $plevel, $os, $osvers, $archname, $summary ) = parse_report_Config( $rpt );
- get_regen_headers( $ddir )
-
get_regen_headers()
looks in$ddir
to find either regen_headers.pl or regen.pl (change 18851).Returns undef if not found or a string like
$^X "$regen_headers_pl"
- run_regen_headers( $ddir, $verbose );
-
run_regen_headers()
gets its executable fromget_regen_headers()
and opens a pipe from it. warn()s on error. - calc_timeout( $killtime[, $from] )
-
calc_timeout()
calculates the timeout in seconds.$killtime
can be one of two formats:- +hh:mm
-
This format represents a duration and is the easy format as we only need to translate that to seconds.
- hh:mm
-
This format represents a clock time (localtime). Calculate minutes from midnight for both
$killtime
andlocaltime($from)
, and get the difference. If$from
is omitted,time()
is used.If
$killtime
is the actual time, the timeout will be 24 hours!
- time_in_hhmm( $diff )
-
Create a string telling elapsed time in days, hours, minutes, seconds from the number of seconds.
- do_pod2man( %pod2usage_options )
-
If Pod::Usage is there then call its
pod2usage()
. In the other case, print the general message passed with themyusage
key. - skip_config( $config )
-
Returns true if this config should be skipped.
$config
should be a Test::Smoke::BuildCFG::Config object. - skip_filter( $line )
-
skip_filter()
returns true if the filter rules apply to$line
.
COPYRIGHT
(c) 2001-2003, All rights reserved.
* H. Merijn Brand <h.m.brand@hccnet.nl>
* Nicholas Clark <nick@unfortu.net>
* Jarkko Hietaniemi <jhi@iki.fi>
* Abe Timmerman <abeltje@cpan.org>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See:
* <http://www.perl.com/perl/misc/Artistic.html>,
* <http://www.gnu.org/copyleft/gpl.html>
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.