fileset: improve test(ing)
authorMischa POSLAWSKY <perl@shiar.org>
Fri, 20 Nov 2009 15:22:27 +0000 (16:22 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Wed, 2 Dec 2009 15:09:59 +0000 (16:09 +0100)
t/10-fileset.t

index fd8d6d572b93aa88496fa347fdfe7204392b0b91..c405a9bb92a508f955abf91aba84a96ec6b3235d 100644 (file)
@@ -10,7 +10,7 @@ use autodie;
 use File::Temp qw(tempdir);
 use File::Path qw(remove_tree);
 
 use File::Temp qw(tempdir);
 use File::Path qw(remove_tree);
 
-BEGIN { use_ok('File::Rewrite', 'fileset'); }
+BEGIN { use_ok('File::Rewrite', 'fileset') or BAIL_OUT('No fileset()'); }
 
 my $target = tempdir();
 
 
 my $target = tempdir();
 
@@ -32,11 +32,13 @@ sub testfileset {
                if ($compare ne $output) {
                        fail($name);
                        diag(sprintf(
                if ($compare ne $output) {
                        fail($name);
                        diag(sprintf(
-                               'output mismatch (got %d of %d lines with return value %s)',
+                               '  Output mismatch (got %d of %d lines with return value %s)',
                                $output =~ tr/\n//,
                                $compare =~ tr/\n//,
                                explain($result),
                        ));
                                $output =~ tr/\n//,
                                $compare =~ tr/\n//,
                                explain($result),
                        ));
+                       diag('         got: "', join('\n', split $/, $output ), '"');
+                       diag('    expected: "', join('\n', split $/, $compare), '"');
                        return;
                }
        }
                        return;
                }
        }
@@ -54,9 +56,9 @@ testfileset('remove all',    $BASICBODY,    [undef, qr/./],     4, '');
 testfileset('add unconditionally', "$/0$/", ['0', undef],       1, "$/0$/0$/");
 testfileset('add string',     "foo$/",      ['bar'],            1, "foo$/bar$/");
 testfileset('keep string',    "foo$/bar$/", ['foo'],            0, "foo$/bar$/");
 testfileset('add unconditionally', "$/0$/", ['0', undef],       1, "$/0$/0$/");
 testfileset('add string',     "foo$/",      ['bar'],            1, "foo$/bar$/");
 testfileset('keep string',    "foo$/bar$/", ['foo'],            0, "foo$/bar$/");
-testfileset('replace string', "1$/2$/3$/",  [4, 1],             2, "2$/3$/4$/");
-testfileset('replace all',    $BASICBODY,   ['', qr/^re/],      3, "noremove$/.$/$/");
-testfileset('keep first',     "foo$/bar$/foo$/", ['foo'],       1, "foo$/bar$/");
+testfileset('keep first',     "foo$/FOO$/foo$/", ['foo'],       1, "foo$/FOO$/");
+testfileset('replace string', "$/0$/1$/2$/", [3, 0],            2, "$/1$/2$/3$/");
+testfileset('keep regex',     "foo$/hi$/$/", ['hi', qr/./],     1, "hi$/$/");
 
 testfileset('add new array',  ".$/",        [['foo','.'], ''],  2, ".$/foo$/.$/");
 testfileset('replace by array', "$/foo$/.$/", [['foo',''], ''], 3, "foo$/.$/foo$/$/");
 
 testfileset('add new array',  ".$/",        [['foo','.'], ''],  2, ".$/foo$/.$/");
 testfileset('replace by array', "$/foo$/.$/", [['foo',''], ''], 3, "foo$/.$/foo$/$/");