use warnings;
use Cwd;
-use Test::More;
use PLP::Functions qw( DecodeURI );
require PLP::Backend::CGI;
require PerlIO::scalar;
our $VERSION = '1.00';
-use base 'Exporter';
+use Test::Builder::Module;
+use base 'Test::Builder::Module';
our @EXPORT = qw( plp_is plp_ok );
$PLP::use_cache = 0 if $PLP::use_cache;
my $ORGDIR = '.'; # Cwd::getcwd();
open ORGOUT, '>&', *STDOUT;
+sub is_string ($$;$) {
+ my $tb = __PACKAGE__->builder;
+ $tb->is_eq(@_);
+}
+
eval {
+ # optionally replace unformatted is_string by LongString prettification
require Test::LongString;
Test::LongString->import(max => 128);
# align lines to: "____expected: "
return $s;
};
-} or *is_string = \&is; # fallback to ugly unformatted is()
+} or 1;
sub _plp_run {
my ($src, $env, $in) = @_;
sub plp_is {
my ($name, $src, $expect, $env, $in) = @_;
+ my $tb = __PACKAGE__->builder;
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($output, $failure) = _plp_run($src, $env, $in);
if ($failure) {
- fail($name);
- diag(" Error: $failure");
+ $tb->ok(0, $name);
+ $tb->diag(" Error: $failure");
return;
}
$output =~ s{((?:.+\n)*)}{ join "", sort split /(?<=\n)/, $1 }e; # order headers
sub plp_ok {
my ($file, %replace) = @_;
+ my $tb = __PACKAGE__->builder;
local $Test::Builder::Level = $Test::Builder::Level + 1;
(my $name = $file) =~ s/[.][^.]+$//;
return readline $fh;
};
if (not defined $out) {
- fail($name);
- diag("error reading output from $file: $@");
+ $tb->ok(0, $name);
+ $tb->diag("error reading output from $file: $@");
return;
}