File: outputs.t

package info (click to toggle)
libtext-diff-perl 1.45-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 216 kB
  • sloc: perl: 1,059; makefile: 4
file content (68 lines) | stat: -rw-r--r-- 1,097 bytes parent folder | download | duplicates (5)
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;