NAME
MakeMaker::Test::Utils - Utility routines for testing MakeMaker
SYNOPSIS
my
$perl
= which_perl;
perl_lib;
my
$makefile
= makefile_name;
my
$makefile_back
= makefile_backup;
my
$make
= make;
my
$make_run
= make_run;
make_macro(
$make
,
$targ
,
%macros
);
my
$mtime
= calibrate_mtime;
my
$out
= run(
$cmd
);
my
$have_compiler
= have_compiler();
my
$text
= slurp(
$filename
);
DESCRIPTION
A consolidation of little utility functions used through out the MakeMaker test suite.
Functions
The following are exported by default.
- which_perl
-
my
$perl
= which_perl;
Returns a path to perl which is safe to use in a command line, no matter where you chdir to.
- perl_lib
-
perl_lib;
Sets up environment variables so perl can find its libraries. Run this before changing directories.
- makefile_name
-
my
$makefile
= makefile_name;
MakeMaker doesn't always generate 'Makefile'. It returns what it should generate.
- makefile_backup
-
my
$makefile_old
= makefile_backup;
Returns the name MakeMaker will use for a backup of the current Makefile.
- make
-
my
$make
= make;
Returns a good guess at the make to run.
- make_run
-
my
$make_run
= make_run;
Returns the make to run as with make() plus any necessary switches.
- make_macro
-
my
$make_cmd
= make_macro(
$make
,
$target
,
%macros
);
Returns the command necessary to run $make on the given $target using the given %macros.
my
$make_test_verbose
= make_macro(make_run(),
'test'
,
TEST_VERBOSE
=> 1);
This is important because VMS's make utilities have a completely different calling convention than Unix or Windows.
%macros is actually a list of tuples, so the order will be preserved.
- calibrate_mtime
-
my
$mtime
= calibrate_mtime;
When building on NFS, file modification times can often lose touch with reality. This returns the mtime of a file which has just been touched.
- run
-
my
$out
= run(
$command
);
my
@out
= run(
$command
);
Runs the given $command as an external program returning at least STDOUT as $out. If possible it will return STDOUT and STDERR combined as you would expect to see on a screen.
- run_ok
-
my
@out
= run_ok(
$cmd
);
Like run() but it tests that the result exited normally.
The output from run() will be used as a diagnostic if it fails.
- have_compiler
-
$have_compiler
= have_compiler;
Returns true if there is a compiler available for XS builds.
- slurp
-
$contents
= slurp(
$filename
);
Returns the $contents of $filename.
Will die if $filename cannot be opened.
- can_run
-
can_run
takes only one argument: the name of a binary you wish to locate.can_run
works much like the unix binarywhich
or the bash commandtype
, which scans through your path, looking for the requested binary.Unlike
which
andtype
, this function is platform independent and will also work on, for example, Win32.If called in a scalar context it will return the full path to the binary you asked for if it was found, or
undef
if it was not.If called in a list context and the global variable
$INSTANCES
is a true value, it will return a list of the full paths to instances of the binary where found inPATH
, or an empty list if it was not found.
AUTHOR
Michael G Schwern <schwern@pobox.com>