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 throughout 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.
- 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.
- write_file
-
write_file(
'filename'
,
@contents
);
Writes the content to the given file. Will die if errors occur.
- hash2files
-
hash2files(
'dirname'
, {
'filename'
=>
'some content'
});
Goes through given hash-ref, treating each key as a /-separated filename under the specified directory, and writing the value into it. Will create any necessary directories.
Will die if errors occur.
- in_dir
-
$retval
= in_dir(\
&coderef
);
$retval
= in_dir(\
&coderef
,
$specified_dir
);
$retval
= in_dir { somecode(); };
$retval
= in_dir { somecode(); }
$specified_dir
;
Does a
chdir
to either a directory. If none is specified, one is created with File::Temp and then automatically deleted after. It ends bychdir
ing back to where it started.If the given code throws an exception, it will be re-thrown after the re-
chdir
.Returns the return value of the given code.
AUTHOR
Michael G Schwern <schwern@pobox.com>