63 lines
919 B
Perl
63 lines
919 B
Perl
package TestHelpers;
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
our @EXPORT_OK = (qw(slurp utf8_slurp eq_or_diff));
|
|
|
|
use parent 'Exporter';
|
|
|
|
use Test::More ();
|
|
|
|
sub slurp
|
|
{
|
|
my $filename = shift;
|
|
|
|
open my $in, "<", $filename
|
|
or die "Cannot open '$filename' for slurping - $!";
|
|
|
|
local $/;
|
|
my $contents = <$in>;
|
|
|
|
close($in);
|
|
|
|
return $contents;
|
|
}
|
|
|
|
sub utf8_slurp
|
|
{
|
|
my $filename = shift;
|
|
|
|
open my $in, '<', $filename
|
|
or die "Cannot open '$filename' for slurping - $!";
|
|
|
|
binmode $in, ':utf8';
|
|
|
|
local $/;
|
|
my $contents = <$in>;
|
|
|
|
close($in);
|
|
|
|
return $contents;
|
|
}
|
|
|
|
my $_eq_or_diff_ref;
|
|
|
|
if (eval "require Test::Differences; 1;" && (!$@))
|
|
{
|
|
$_eq_or_diff_ref = \&Test::Differences::eq_or_diff;
|
|
}
|
|
else
|
|
{
|
|
$_eq_or_diff_ref = \&Test::More::is_deeply;
|
|
}
|
|
|
|
sub eq_or_diff
|
|
{
|
|
local $Test::Builder::Level = $Test::Builder::Level + 1;
|
|
|
|
return $_eq_or_diff_ref->(@_);
|
|
}
|
|
|
|
1;
|