1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
#!/usr/local/bin/perl -w
# $Id: trace_dump.t,v 1.4 2005/11/24 10:53:12 tonyh Exp $
use strict;
use Test::More tests => 9;
# Find local libs unless running under Test::Harness
BEGIN { unshift @INC, -d 't' ? 'lib' : '../lib' unless grep /\bblib\b/, @INC }
require_ok('Log::Trace');
my $output;
my $trace = sub {
$output = shift;
0 && do {
my $expected = $output;
$expected =~ s/([@"\$\\])/\\$1/g;
$expected =~ s/\t/\\t/g;
$expected =~ s/\n/\\n/g;
# print $expected, $/;
}
};
SKIP: {
eval { require Data::Dumper };
skip "Data::Dumper not installed", 4, if $@;
import Log::Trace custom => $trace;
DUMP([1,2,3]);
my $expected = "\$VAR1 = [\n 1,\n 2,\n 3\n];\n";
is ($output, $expected, 'simple DUMP with DD');
$output = '';
DUMP('prepended message', { somewhat => [qw(more complicated)] }, 'foo');
$expected = "prepended message: \$VAR1 = {\n somewhat => [\n 'more',\n 'complicated'\n ]\n};\n\$VAR2 = 'foo';\n";
is($output, $expected, 'dump with a comment');
$output = '';
my $dumped = DUMP("this isn't traced", [qw(it is returned instead)]);
$expected = "this isn't traced: \$VAR1 = [\n 'it',\n 'is',\n 'returned',\n 'instead'\n];\n";
is($output, '', 'dump in non-void context does not TRACE');
is ($dumped, $expected, 'in non-void context it returns the DUMP');
}
SKIP: {
eval { require Data::Serializer };
skip "Data::Serializer not installed", 4, if $@;
eval { require Data::Dumper };
skip "Data::Dumper not installed", 4, if $@;
import Log::Trace custom => $trace, { Dumper => 'Data::Dumper' };
DUMP([1,2,3]);
my $expected = "[1,2,3]\n";
is ($output, $expected, 'simple DUMP with DS');
$output = '';
DUMP('prepended message', { somewhat => [qw(more complicated)] }, { 'foo' => 'bar' });
$expected = "prepended message: {'somewhat' => ['more','complicated']}\n{'foo' => 'bar'}\n";
is($output, $expected, 'dump with a comment');
$output = '';
my $dumped = DUMP("this isn't traced", [qw(it is returned instead)]);
$expected = "this isn't traced: ['it','is','returned','instead']\n";
is($output, '', 'dump in non-void context does not TRACE');
is ($dumped, $expected, 'in non-void context it returns the DUMP');
}
sub TRACE {}
sub DUMP {}
|