Add the following packages libalgorithm-diff-perl libspiffy-perl libtext-diff-perl...
[pkg-perl] / deb-src / libtext-diff-perl / libtext-diff-perl-0.35 / t / outputs.t
1 #!/usr/local/bin/perl -w
2
3 use strict ;
4 use Test ;
5 use Text::Diff ;
6
7 my @A = map "$_\n", qw( 1 2 3 4 ) ;
8 my @B = map "$_\n", qw( 1 2 3 5 ) ;
9
10 sub _d($) { diff \@A, \@B, { OUTPUT => shift } }
11
12 sub slurp { open SLURP, "<" . shift or die $! ; return join "", <SLURP> }
13
14 my $expected  = _d undef ;
15
16 my @tests = (
17 sub { ok $expected =~ tr/\n// },
18
19 sub { my $o ; _d sub { $o .= shift } ;  ok $o,             $expected },
20
21 sub { my @o ; _d \@o ;                  ok join( "", @o ), $expected },
22
23 sub {
24     open F, ">output.t.foo" or die $! ;
25     _d \*F ;
26     close F or die $! ;
27     ok slurp "output.t.foo", $expected ;
28     unlink "output.t.foo" or warn $! ;
29 },
30
31 sub {
32     require IO::File ;
33     my $fh = IO::File->new( ">output.t.foo" ) ;
34     _d $fh ;
35     $fh = undef ;
36     ok slurp "output.t.foo", $expected ;
37     unlink "output.t.foo" or warn $! ;
38 },
39
40 sub { ok 0 < index( diff( \"\n", \"", { STYLE => "Table" } ), "\\n" ) },
41
42 # test for bug reported by Ilya Martynov <ilya@martynov.org> 
43 sub { ok diff( \"", \"" ), "" },
44 sub { ok diff( \"A", \"A" ), "" },
45 ) ;
46
47 plan tests => scalar @tests ;
48
49 $_->() for @tests ;