NAME
MakeMaker::Test::Utils - Utility routines for testing MakeMaker
SYNOPSIS
use MakeMaker::Test::Utils;
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_runtakes only one argument: the name of a binary you wish to locate.can_runworks much like the unix binarywhichor the bash commandtype, which scans through your path, looking for the requested binary.Unlike
whichandtype, 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
undefif it was not.If called in a list context and the global variable
$INSTANCESis 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>