@ 11d698f · fetching

230225.2 · fde8a5115cfde60232639bf5ddf333ad34545688

Moved t/internals/* up to t/ because somewhere along the line prove stopped recursing by default

reading declarations

Changes to t/FilterTest.pm. All files

t/FilterTest.pm

new file mode 100644@@ -0,0 +1,52 @@+package FilterTest;++use strict;+use warnings;+use parent 'Exporter';++use App::Ack::File;+use File::Next;+use Util;+use Test::More;++our @EXPORT = qw(filter_test);++sub swamp_files {+    my @swamp_files;++    my $files = File::Next::files( 't/swamp' );+    while ( my $file = $files->() ) {+        push( @swamp_files, $file );+    }++    return @swamp_files;+}++sub filter_test {+    local $Test::Builder::Level = $Test::Builder::Level + 1;++    my $filter_args      = shift;+    my $expected_matches = shift;+    my $msg              = shift or die 'Must pass a message to filter_test()';++    return subtest "filter_test($msg)" => sub {+        my $filter = eval {+            App::Ack::Filter->create_filter(@{$filter_args});+        };++        ok($filter) or diag($@);++        my @matches = map {+            $_->name+        } grep {+            $filter->filter($_)+        } map {+            App::Ack::File->new($_)+        } swamp_files();++        sets_match(\@matches, $expected_matches, $msg);+    };+}+++1;