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
|
#!/usr/bin/perl
use strict;
use Test;
use Text::Diff;
my @A = map "$_\n", qw( 1 2 3 4 );
my @B = map "$_\n", qw( 1 2 3 5 );
sub _d($) {
diff \@A, \@B, { OUTPUT => shift };
}
sub slurp {
open SLURP, "<$_[0]" or die $!;
my $string = join "", <SLURP>;
close SLURP;
return $string;
}
my $expected = _d undef;
my @tests = (
sub {
ok $expected =~ tr/\n//
},
sub {
my $o;
_d sub { $o .= shift };
ok $o, $expected
},
sub {
my @o;
_d \@o;
ok join( "", @o ), $expected;
},
sub {
open F, ">output.foo" or die $!;
_d \*F;
close F or die $!;
ok slurp "output.foo", $expected;
unlink "output.foo" or warn $!;
},
sub {
require IO::File;
my $fh = IO::File->new( ">output.bar" );
_d $fh;
$fh->close;
$fh = undef;
ok slurp "output.bar", $expected;
unlink "output.bar" or warn $!;
},
sub {
ok 0 < index( diff( \"\n", \"", { STYLE => "Table" } ), "\\n" );
},
# Test for bug reported by Ilya Martynov <ilya@martynov.org>
sub {
ok diff( \"", \"" ), "";
},
sub {
ok diff( \"A", \"A" ), "";
},
);
plan tests => scalar @tests;
$_->() for @tests;
|