git.shiar.nl
/
perl
/
file-rewrite.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6ad6da6
)
fileset: compare resulting data in tests
author
Mischa POSLAWSKY
<perl@shiar.org>
Thu, 19 Nov 2009 22:47:46 +0000
(23:47 +0100)
committer
Mischa POSLAWSKY
<perl@shiar.org>
Wed, 2 Dec 2009 15:09:58 +0000
(16:09 +0100)
t/10-fileset.t
patch
|
blob
|
history
diff --git
a/t/10-fileset.t
b/t/10-fileset.t
index c5a5709d8e5ec9f46111d80fdaa4384dbc5e57d3..dc800efa2a424d06c1605730c998e9771cfabfd0 100644
(file)
--- a/
t/10-fileset.t
+++ b/
t/10-fileset.t
@@
-15,22
+15,39
@@
BEGIN { use_ok('File::Rewrite', 'fileset'); }
my $target = tempdir();
sub testfileset {
my $target = tempdir();
sub testfileset {
- my ($name, $input, $params, $
result
) = @_;
+ my ($name, $input, $params, $
expect, $compare
) = @_;
my $filename = "$target/$name";
open my $file, '>', $filename;
print {$file} $input;
close $file;
my $filename = "$target/$name";
open my $file, '>', $filename;
print {$file} $input;
close $file;
- is(fileset($filename, @$params), $result, $name)
- or diag(explain $input);
+ my $result = eval { fileset($filename, @$params) };
+ if (defined $result and defined $compare) {
+ my $output = eval {
+ local $/;
+ open my $confirm, '<', $filename;
+ readline $confirm;
+ };
+ if ($compare ne $output) {
+ fail($name);
+ diag(sprintf(
+ 'output mismatch (got %d of %d lines with return value %s)',
+ $output =~ tr/\n//,
+ $compare =~ tr/\n//,
+ explain($result),
+ ));
+ return;
+ }
+ }
+ is($result, $expect, $name);
}
my $BASICBODY = "replace$/noremove$/remove$/.$/";
}
my $BASICBODY = "replace$/noremove$/remove$/.$/";
-testfileset('no match', $BASICBODY, [undef, 'nomatch'], 0);
-testfileset('remove string', $BASICBODY, [undef, 'remove'], 1);
-testfileset('remove empty', "$/.$/ $/$/", [undef, ''], 2);
+testfileset('no match', $BASICBODY, [undef, 'nomatch'], 0
, $BASICBODY
);
+testfileset('remove string', $BASICBODY, [undef, 'remove'], 1
, "replace$/noremove$/.$/"
);
+testfileset('remove empty', "$/.$/ $/$/", [undef, ''], 2
, ".$/ $/"
);
testfileset('remove regex', $BASICBODY, [undef, qr/^re/], 2);
testfileset('remove all', $BASICBODY, [undef, qr/./], 4, '');
testfileset('remove regex', $BASICBODY, [undef, qr/^re/], 2);
testfileset('remove all', $BASICBODY, [undef, qr/./], 4, '');