|
Packit |
26bf30 |
#!perl
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
use strict;
|
|
Packit |
26bf30 |
use warnings;
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
use lib './t/lib';
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
use Test::More tests => 5;
|
|
Packit |
26bf30 |
use File::Spec;
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
use File::Path;
|
|
Packit |
26bf30 |
use File::Find::Object::TreeCreate;
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
my $tree_creator = File::Find::Object::TreeCreate->new();
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
{
|
|
Packit |
26bf30 |
my $tree =
|
|
Packit |
26bf30 |
{
|
|
Packit |
26bf30 |
'name' => "findorule-t-copy-to/",
|
|
Packit |
26bf30 |
'subs' =>
|
|
Packit |
26bf30 |
[
|
|
Packit |
26bf30 |
{
|
|
Packit |
26bf30 |
'name' => "File-Find-Rule.t",
|
|
Packit |
26bf30 |
'contents' => $tree_creator->cat(
|
|
Packit |
26bf30 |
"./t/sample-data/to-copy-from/File-Find-Rule.t"
|
|
Packit |
26bf30 |
),
|
|
Packit |
26bf30 |
},
|
|
Packit |
26bf30 |
{
|
|
Packit |
26bf30 |
'name' => "findorule.t",
|
|
Packit |
26bf30 |
'contents' => $tree_creator->cat(
|
|
Packit |
26bf30 |
"./t/sample-data/to-copy-from/findorule.t"
|
|
Packit |
26bf30 |
),
|
|
Packit |
26bf30 |
},
|
|
Packit |
26bf30 |
{
|
|
Packit |
26bf30 |
'name' => "foobar",
|
|
Packit |
26bf30 |
'contents' => $tree_creator->cat(
|
|
Packit |
26bf30 |
"./t/sample-data/to-copy-from/foobar"
|
|
Packit |
26bf30 |
),
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
},
|
|
Packit |
26bf30 |
{
|
|
Packit |
26bf30 |
'name' => "lib/",
|
|
Packit |
26bf30 |
'subs' =>
|
|
Packit |
26bf30 |
[
|
|
Packit |
26bf30 |
{
|
|
Packit |
26bf30 |
'name' => "File/",
|
|
Packit |
26bf30 |
'subs' =>
|
|
Packit |
26bf30 |
[
|
|
Packit |
26bf30 |
{
|
|
Packit |
26bf30 |
name => "Find/",
|
|
Packit |
26bf30 |
subs =>
|
|
Packit |
26bf30 |
[
|
|
Packit |
26bf30 |
{
|
|
Packit |
26bf30 |
name => "Object/",
|
|
Packit |
26bf30 |
subs =>
|
|
Packit |
26bf30 |
[
|
|
Packit |
26bf30 |
{
|
|
Packit |
26bf30 |
name => "Rule/",
|
|
Packit |
26bf30 |
subs =>
|
|
Packit |
26bf30 |
[
|
|
Packit |
26bf30 |
{
|
|
Packit |
26bf30 |
name => "Test/",
|
|
Packit |
26bf30 |
subs =>
|
|
Packit |
26bf30 |
[
|
|
Packit |
26bf30 |
{
|
|
Packit |
26bf30 |
name => "ATeam.pm",
|
|
Packit |
26bf30 |
content => $tree_creator->cat(
|
|
Packit |
26bf30 |
"./t/sample-data/to-copy-from/lib/File/Find/Object/Rule/Test/ATeam.pm"
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
),
|
|
Packit |
26bf30 |
}
|
|
Packit |
26bf30 |
],
|
|
Packit |
26bf30 |
},
|
|
Packit |
26bf30 |
],
|
|
Packit |
26bf30 |
}
|
|
Packit |
26bf30 |
],
|
|
Packit |
26bf30 |
},
|
|
Packit |
26bf30 |
],
|
|
Packit |
26bf30 |
},
|
|
Packit |
26bf30 |
],
|
|
Packit |
26bf30 |
},
|
|
Packit |
26bf30 |
],
|
|
Packit |
26bf30 |
},
|
|
Packit |
26bf30 |
],
|
|
Packit |
26bf30 |
};
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
$tree_creator->create_tree("./t/sample-data/", $tree);
|
|
Packit |
26bf30 |
}
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
# extra tests for findorule. these are more for testing the parsing code.
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
sub run ($) {
|
|
Packit |
26bf30 |
my $expr = shift;
|
|
Packit |
26bf30 |
my $script = File::Spec->catfile(
|
|
Packit |
26bf30 |
File::Spec->curdir(), "scripts", "findorule"
|
|
Packit |
26bf30 |
);
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
[ sort split /\n/, `$^X -Mblib $script $expr` ];
|
|
Packit |
26bf30 |
}
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
my $copy_fn = $tree_creator->get_path(
|
|
Packit |
26bf30 |
"./t/sample-data/findorule-t-copy-to/"
|
|
Packit |
26bf30 |
);
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
my $FFR_t = $tree_creator->get_path(
|
|
Packit |
26bf30 |
"./t/sample-data/findorule-t-copy-to/File-Find-Rule.t"
|
|
Packit |
26bf30 |
);
|
|
Packit |
26bf30 |
my $findorule_t = $tree_creator->get_path(
|
|
Packit |
26bf30 |
"./t/sample-data/findorule-t-copy-to/findorule.t"
|
|
Packit |
26bf30 |
);
|
|
Packit |
26bf30 |
my $foobar_fn = $tree_creator->get_path(
|
|
Packit |
26bf30 |
"./t/sample-data/findorule-t-copy-to/foobar"
|
|
Packit |
26bf30 |
);
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
# TEST
|
|
Packit |
26bf30 |
is_deeply(run $copy_fn . ' -file -name foobar', [ $foobar_fn ],
|
|
Packit |
26bf30 |
'-file -name foobar');
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
# TEST
|
|
Packit |
26bf30 |
is_deeply(run $copy_fn . ' -maxdepth 0 -directory',
|
|
Packit |
26bf30 |
[ $copy_fn ], 'last clause has no args');
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
{
|
|
Packit |
26bf30 |
local $TODO = "Win32 cmd.exe hurts my brane"
|
|
Packit |
26bf30 |
if ($^O =~ m/Win32/ || $^O eq 'dos');
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
# TEST
|
|
Packit |
26bf30 |
is_deeply(run $copy_fn . ' -file -name \( foobar \*.t \)',
|
|
Packit |
26bf30 |
[ $FFR_t, $findorule_t, $foobar_fn ],
|
|
Packit |
26bf30 |
'grouping ()');
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
# TEST
|
|
Packit |
26bf30 |
is_deeply(run $copy_fn . ' -name \( -foo foobar \)',
|
|
Packit |
26bf30 |
[ $foobar_fn ], 'grouping ( -literal )');
|
|
Packit |
26bf30 |
}
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
# Remming out due to capturing STDERR using unixisms. In the future, we
|
|
Packit |
26bf30 |
# may implement this using Test::Trap.
|
|
Packit |
26bf30 |
# is_deeply(run $copy_fn . ' -file -name foobar baz',
|
|
Packit |
26bf30 |
# [ "unknown option 'baz'" ], 'no implicit grouping');
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
# TEST
|
|
Packit |
26bf30 |
is_deeply(run $copy_fn . ' -maxdepth 0 -name -file',
|
|
Packit |
26bf30 |
[], 'terminate at next -');
|
|
Packit |
26bf30 |
|
|
Packit |
26bf30 |
rmtree($copy_fn);
|