Hello community,

here is the log from the commit of package perl-Test-CheckManifest for 
openSUSE:Factory checked in at 2019-02-24 17:15:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Test-CheckManifest (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Test-CheckManifest.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Test-CheckManifest"

Sun Feb 24 17:15:04 2019 rev:3 rq:677224 version:1.39

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-Test-CheckManifest/perl-Test-CheckManifest.changes
  2018-02-09 15:47:00.748540810 +0100
+++ 
/work/SRC/openSUSE:Factory/.perl-Test-CheckManifest.new.28833/perl-Test-CheckManifest.changes
       2019-02-24 17:15:06.856453610 +0100
@@ -1,0 +2,57 @@
+Fri Feb 15 06:30:42 UTC 2019 - Stephan Kulow <[email protected]>
+
+- updated to 1.39
+   see /usr/share/doc/packages/perl-Test-CheckManifest/Changes
+
+  1.39  2019-02-14 07:28:00
+  
+        * release 1.39
+  
+  1.38_02 2018-12-23 11:32:00
+  
+        * fix test failures (thanks to manwar and LorenzoTa)
+  
+  1.38_01 2018-12-21 14:30:00
+  
+        * more tests
+        * refactor code
+
+-------------------------------------------------------------------
+Fri Dec 14 06:26:51 UTC 2018 - Stephan Kulow <[email protected]>
+
+- updated to 1.38
+   see /usr/share/doc/packages/perl-Test-CheckManifest/Changes
+
+  1.38  2018-12-13 16:26:00
+  
+        [BUGFIX]
+        * require at least Cwd 3.75
+
+-------------------------------------------------------------------
+Thu Dec 13 06:27:30 UTC 2018 - Stephan Kulow <[email protected]>
+
+- updated to 1.36
+   see /usr/share/doc/packages/perl-Test-CheckManifest/Changes
+
+  1.35  2018-12-12 09:05:00
+  
+        [BUGFIX]
+        * Tests failed
+
+-------------------------------------------------------------------
+Wed Dec 12 06:27:58 UTC 2018 - Stephan Kulow <[email protected]>
+
+- updated to 1.34
+   see /usr/share/doc/packages/perl-Test-CheckManifest/Changes
+
+  1.34  2018-12-11
+  
+        [BUGFIX]
+        * Tests failed on Windows (github #9)
+        * 'exclude' is meant to be a list of directories, but it was handled 
as regular expressions
+  
+        [IMPROVEMENTS]
+        * rewrite larger parts of the module
+        * add lots of tests
+
+-------------------------------------------------------------------

Old:
----
  Test-CheckManifest-1.33.tar.gz

New:
----
  Test-CheckManifest-1.39.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Test-CheckManifest.spec ++++++
--- /var/tmp/diff_new_pack.XIBDxX/_old  2019-02-24 17:15:07.344453523 +0100
+++ /var/tmp/diff_new_pack.XIBDxX/_new  2019-02-24 17:15:07.352453522 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-Test-CheckManifest
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,18 +12,18 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           perl-Test-CheckManifest
-Version:        1.33
+Version:        1.39
 Release:        0
 %define cpan_name Test-CheckManifest
 Summary:        Check if your Manifest matches your distro
 License:        Artistic-2.0
 Group:          Development/Libraries/Perl
-Url:            http://search.cpan.org/dist/Test-CheckManifest/
+Url:            https://metacpan.org/release/%{cpan_name}
 Source0:        
https://cpan.metacpan.org/authors/id/R/RE/RENEEB/%{cpan_name}-%{version}.tar.gz
 Source1:        cpanspec.yml
 BuildArch:      noarch
@@ -31,6 +31,9 @@
 BuildRequires:  perl
 BuildRequires:  perl-macros
 BuildRequires:  perl(CPAN::Meta::YAML)
+BuildRequires:  perl(Cwd) >= 3.75
+BuildRequires:  perl(Pod::Coverage::TrustPod)
+Requires:       perl(Cwd) >= 3.75
 %{perl_requires}
 
 %description
@@ -40,8 +43,8 @@
 %setup -q -n %{cpan_name}-%{version}
 
 %build
-%{__perl} Makefile.PL INSTALLDIRS=vendor
-%{__make} %{?_smp_mflags}
+perl Makefile.PL INSTALLDIRS=vendor
+make %{?_smp_mflags}
 
 %check
 touch dummy.list
@@ -56,7 +59,7 @@
 
 %files -f %{name}.files
 %defattr(-,root,root,755)
-%doc Changes README
+%doc Changes CONTRIBUTING.md CONTRIBUTORS README
 %license LICENSE
 
 %changelog

++++++ Test-CheckManifest-1.33.tar.gz -> Test-CheckManifest-1.39.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/CONTRIBUTING.md 
new/Test-CheckManifest-1.39/CONTRIBUTING.md
--- old/Test-CheckManifest-1.33/CONTRIBUTING.md 1970-01-01 01:00:00.000000000 
+0100
+++ new/Test-CheckManifest-1.39/CONTRIBUTING.md 2019-02-14 07:36:31.000000000 
+0100
@@ -0,0 +1,44 @@
+
+# Development
+
+The distribution is contained in a Git repository, so simply clone the
+repository
+
+```
+$ git clone http://github.com/reneeb/Test-CheckManifest.git
+```
+
+and change into the newly-created directory.
+
+```
+$ cd Test-CheckManifest
+```
+
+The project uses [`Dist::Zilla`](https://metacpan.org/pod/Dist::Zilla) to
+build the distribution, hence this will need to be installed before
+continuing:
+
+```
+$ cpanm Dist::Zilla
+```
+
+To install the required prequisite packages, run the following set of
+commands:
+
+```
+$ dzil authordeps --missing | cpanm
+$ dzil listdeps --author --missing | cpanm
+```
+
+The distribution can be tested like so:
+
+```
+$ dzil test
+```
+
+To run the full set of tests (including author and release-process tests),
+add the `--author` and `--release` options:
+
+```
+$ dzil test --author --release
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/CONTRIBUTORS 
new/Test-CheckManifest-1.39/CONTRIBUTORS
--- old/Test-CheckManifest-1.33/CONTRIBUTORS    1970-01-01 01:00:00.000000000 
+0100
+++ new/Test-CheckManifest-1.39/CONTRIBUTORS    2019-02-14 07:36:31.000000000 
+0100
@@ -0,0 +1,18 @@
+
+# TEST-CHECKMANIFEST CONTRIBUTORS #
+
+This is the (likely incomplete) list of people who have helped
+make this distribution what it is, either via code contributions, 
+patches, bug reports, help with troubleshooting, etc. A huge
+'thank you' to all of them.
+
+    * doug
+    * LorenzoTa
+    * LorenzoTa
+    * Michael Gray
+    * Mohammad S Anwar
+    * reneeb
+    * reneeb
+    * Renee
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/Changes 
new/Test-CheckManifest-1.39/Changes
--- old/Test-CheckManifest-1.33/Changes 2018-01-26 13:42:10.000000000 +0100
+++ new/Test-CheckManifest-1.39/Changes 2019-02-14 07:36:31.000000000 +0100
@@ -1,6 +1,39 @@
 Revision history for Perl extension Test::CheckManifest.
 ========================================================
 
+1.39  2019-02-14 07:28:00
+
+      * release 1.39
+
+1.38_02 2018-12-23 11:32:00
+
+      * fix test failures (thanks to manwar and LorenzoTa)
+
+1.38_01 2018-12-21 14:30:00
+
+      * more tests
+      * refactor code
+
+1.38  2018-12-13 16:26:00
+
+      [BUGFIX]
+      * require at least Cwd 3.75
+
+1.35  2018-12-12 09:05:00
+
+      [BUGFIX]
+      * Tests failed
+
+1.34  2018-12-11
+
+      [BUGFIX]
+      * Tests failed on Windows (github #9)
+      * 'exclude' is meant to be a list of directories, but it was handled as 
regular expressions
+
+      [IMPROVEMENTS]
+      * rewrite larger parts of the module
+      * add lots of tests
+
 1.33  2018-01-26
 
       [INTERNAL]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/MANIFEST 
new/Test-CheckManifest-1.39/MANIFEST
--- old/Test-CheckManifest-1.33/MANIFEST        2018-01-26 13:42:10.000000000 
+0100
+++ new/Test-CheckManifest-1.39/MANIFEST        2019-02-14 07:36:31.000000000 
+0100
@@ -1,16 +1,32 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest 
v6.010.
+# MANIFEST for Test-CheckManifest
 Changes
-LICENSE
 MANIFEST
-META.json
-META.yml
-Makefile.PL
-README
-lib/Test/CheckManifest.pm
+CONTRIBUTORS
+CONTRIBUTING.md
+
 t/00_load.t
 t/01_selftest.t
-t/extra/02_test_in_subdirectory.t
-'t/file with whitespaces.txt'
-t/testrules.yml
+t/02_validate_args.t
+t/03_find_home.t
+t/04_check_excludes.t
+t/05_is_excluded.t
+t/06_bailout.t
+t/07_is_in_dir.t
+t/08_check_manifest.t
+t/author-pod-coverage.t
+t/author-pod-syntax.t
 t/xt/02_issue1.t
 t/xt/03_issue7.t
+'t/file with whitespaces.txt'
+t/testrules.yml
+
+t/extra/02_test_in_subdirectory.t
+
+lib/Test/CheckManifest.pm
+
+README      # selftest
+LICENSE     # selftest
+META.yml    # selftest
+META.json   # selftest
+Makefile.PL # selftest
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/META.json 
new/Test-CheckManifest-1.39/META.json
--- old/Test-CheckManifest-1.33/META.json       2018-01-26 13:42:10.000000000 
+0100
+++ new/Test-CheckManifest-1.39/META.json       2019-02-14 07:36:31.000000000 
+0100
@@ -4,7 +4,7 @@
       "Renee Baecker <[email protected]>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "Dist::Zilla version 6.010, CPAN::Meta::Converter version 
2.150005",
+   "generated_by" : "Dist::Zilla version 6.010, CPAN::Meta::Converter version 
2.150010",
    "license" : [
       "artistic_2"
    ],
@@ -19,22 +19,39 @@
             "ExtUtils::MakeMaker" : "0"
          }
       },
+      "develop" : {
+         "requires" : {
+            "Pod::Coverage::TrustPod" : "0",
+            "Test::Pod" : "1.41",
+            "Test::Pod::Coverage" : "1.08"
+         }
+      },
       "runtime" : {
          "requires" : {
             "Carp" : "0",
-            "Cwd" : "0",
+            "Cwd" : "3.75",
             "File::Basename" : "0",
             "File::Find" : "0",
             "File::Spec" : "0",
-            "Test::Builder" : "0"
+            "Scalar::Util" : "0",
+            "Test::Builder" : "0",
+            "Test::More" : "0",
+            "perl" : "5.008"
          }
       },
       "test" : {
          "requires" : {
-            "CPAN::Meta::YAML" : "0"
+            "CPAN::Meta::YAML" : "0",
+            "Pod::Coverage::TrustPod" : "0"
          }
       }
    },
+   "provides" : {
+      "Test::CheckManifest" : {
+         "file" : "lib/Test/CheckManifest.pm",
+         "version" : "1.39"
+      }
+   },
    "release_status" : "stable",
    "resources" : {
       "bugtracker" : {
@@ -47,7 +64,17 @@
          "web" : "http://github.com/reneeb/Test-CheckManifest";
       }
    },
-   "version" : "1.33",
-   "x_serialization_backend" : "JSON::XS version 3.01"
+   "version" : "1.39",
+   "x_contributors" : [
+      "doug <[email protected]>",
+      "LorenzoTa <[email protected]>",
+      "LorenzoTa <[email protected]>",
+      "Michael Gray <[email protected]>",
+      "Mohammad S Anwar <[email protected]>",
+      "reneeb <[email protected]>",
+      "reneeb <[email protected]>",
+      "Renee <[email protected]>"
+   ],
+   "x_serialization_backend" : "JSON::XS version 3.04"
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/META.yml 
new/Test-CheckManifest-1.39/META.yml
--- old/Test-CheckManifest-1.33/META.yml        2018-01-26 13:42:10.000000000 
+0100
+++ new/Test-CheckManifest-1.39/META.yml        2019-02-14 07:36:31.000000000 
+0100
@@ -4,25 +4,42 @@
   - 'Renee Baecker <[email protected]>'
 build_requires:
   CPAN::Meta::YAML: '0'
+  Pod::Coverage::TrustPod: '0'
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 0
-generated_by: 'Dist::Zilla version 6.010, CPAN::Meta::Converter version 
2.150005'
+generated_by: 'Dist::Zilla version 6.010, CPAN::Meta::Converter version 
2.150010'
 license: artistic_2
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
   version: '1.4'
 name: Test-CheckManifest
+provides:
+  Test::CheckManifest:
+    file: lib/Test/CheckManifest.pm
+    version: '1.39'
 requires:
   Carp: '0'
-  Cwd: '0'
+  Cwd: '3.75'
   File::Basename: '0'
   File::Find: '0'
   File::Spec: '0'
+  Scalar::Util: '0'
   Test::Builder: '0'
+  Test::More: '0'
+  perl: '5.008'
 resources:
   bugtracker: http://github.com/reneeb/Test-CheckManifest/issues
   homepage: http://github.com/reneeb/Test-CheckManifest
   repository: http://github.com/reneeb/Test-CheckManifest.git
-version: '1.33'
-x_serialization_backend: 'YAML::Tiny version 1.69'
+version: '1.39'
+x_contributors:
+  - 'doug <[email protected]>'
+  - 'LorenzoTa <[email protected]>'
+  - 'LorenzoTa <[email protected]>'
+  - 'Michael Gray <[email protected]>'
+  - 'Mohammad S Anwar <[email protected]>'
+  - 'reneeb <[email protected]>'
+  - 'reneeb <[email protected]>'
+  - 'Renee <[email protected]>'
+x_serialization_backend: 'YAML::Tiny version 1.70'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/Makefile.PL 
new/Test-CheckManifest-1.39/Makefile.PL
--- old/Test-CheckManifest-1.33/Makefile.PL     2018-01-26 13:42:10.000000000 
+0100
+++ new/Test-CheckManifest-1.39/Makefile.PL     2019-02-14 07:36:31.000000000 
+0100
@@ -2,7 +2,7 @@
 use strict;
 use warnings;
 
-
+use 5.008;
 
 use ExtUtils::MakeMaker;
 
@@ -14,19 +14,23 @@
   },
   "DISTNAME" => "Test-CheckManifest",
   "LICENSE" => "artistic_2",
+  "MIN_PERL_VERSION" => "5.008",
   "NAME" => "Test::CheckManifest",
   "PREREQ_PM" => {
     "Carp" => 0,
-    "Cwd" => 0,
+    "Cwd" => "3.75",
     "File::Basename" => 0,
     "File::Find" => 0,
     "File::Spec" => 0,
-    "Test::Builder" => 0
+    "Scalar::Util" => 0,
+    "Test::Builder" => 0,
+    "Test::More" => 0
   },
   "TEST_REQUIRES" => {
-    "CPAN::Meta::YAML" => 0
+    "CPAN::Meta::YAML" => 0,
+    "Pod::Coverage::TrustPod" => 0
   },
-  "VERSION" => "1.33",
+  "VERSION" => "1.39",
   "test" => {
     "TESTS" => "t/*.t t/extra/*.t t/xt/*.t"
   }
@@ -36,11 +40,14 @@
 my %FallbackPrereqs = (
   "CPAN::Meta::YAML" => 0,
   "Carp" => 0,
-  "Cwd" => 0,
+  "Cwd" => "3.75",
   "File::Basename" => 0,
   "File::Find" => 0,
   "File::Spec" => 0,
-  "Test::Builder" => 0
+  "Pod::Coverage::TrustPod" => 0,
+  "Scalar::Util" => 0,
+  "Test::Builder" => 0,
+  "Test::More" => 0
 );
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/README 
new/Test-CheckManifest-1.39/README
--- old/Test-CheckManifest-1.33/README  2018-01-26 13:42:10.000000000 +0100
+++ new/Test-CheckManifest-1.39/README  2019-02-14 07:36:31.000000000 +0100
@@ -1,16 +1,103 @@
+NAME
 
+    Test::CheckManifest - Check if your Manifest matches your distro
 
-This archive contains the distribution Test-CheckManifest,
-version 1.33:
+VERSION
 
-  Check if your Manifest matches your distro
+    version 1.39
 
-This software is Copyright (c) 2018 by Renee Baecker.
+SYNOPSIS
 
-This is free software, licensed under:
+      use Test::CheckManifest;
+      ok_manifest();
 
-  The Artistic License 2.0 (GPL Compatible)
+ EXPORT
 
+    There is only one method exported: ok_manifest
 
-This README file was generated by Dist::Zilla::Plugin::Readme v6.010.
+METHODS
+
+ ok_manifest [{exclude => $arref}][$msg]
+
+    checks whether the Manifest file matches the distro or not. To match a
+    distro the Manifest has to name all files that come along with the
+    distribution.
+
+    To check the Manifest file, this module searches for a file named
+    MANIFEST.
+
+    To exclude some directories from this test, you can specify these dirs
+    in the hashref.
+
+      ok_manifest({exclude => ['/var/test/']});
+
+    is ok if the files in /path/to/your/dist/var/test/ are not named in the
+    MANIFEST file. That means that the paths in the exclude array must be
+    "pseudo-absolute" (absolute to your distribution).
+
+    To use a "filter" you can use the key "filter"
+
+      ok_manifest({filter => [qr/\.svn/]});
+
+    With that you can exclude all files with an '.svn' in the filename or
+    in the path from the test.
+
+    These files would be excluded (as examples):
+
+      * /dist/var/.svn/test
+
+      * /dist/lib/test.svn
+
+    You can also combine "filter" and "exclude" with 'and' or 'or' default
+    is 'or':
+
+      ok_manifest({exclude => ['/var/test'], 
+                   filter  => [qr/\.svn/], 
+                   bool    => 'and'});
+
+    These files have to be named in the MANIFEST:
+
+      * /var/foo/.svn/any.file
+
+      * /dist/t/file.svn
+
+      * /var/test/test.txt
+
+    These files not:
+
+      * /var/test/.svn/*
+
+      * /var/test/file.svn
+
+    By default, ok_manifest will look for the file MANIFEST in the current
+    working directory (which is how tests are traditionally run). If you
+    wish to specify a different directory, you may pass the file or dir
+    parameters, for example:
+
+      ok_manifest({dir => '/path/to/my/dist/'});
+
+EXCLUDING FILES
+
+    Beside filter and exclude there is another way to exclude files:
+    MANIFEST.SKIP. This is a file with filenames that should be excluded:
+
+      t/my_very_own.t
+      file_to.skip
+
+ACKNOWLEDGEMENT
+
+    Great thanks to Christopher H. Laco, who did a lot of testing stuff for
+    me and he reported some bugs to RT.
+
+AUTHOR
+
+    Renee Baecker <[email protected]>
+
+COPYRIGHT AND LICENSE
+
+    This software is Copyright (c) 2018 by Renee Baecker.
+
+    This is free software, licensed under:
+
+      The Artistic License 2.0 (GPL Compatible)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/lib/Test/CheckManifest.pm 
new/Test-CheckManifest-1.39/lib/Test/CheckManifest.pm
--- old/Test-CheckManifest-1.33/lib/Test/CheckManifest.pm       2018-01-26 
13:42:10.000000000 +0100
+++ new/Test-CheckManifest-1.39/lib/Test/CheckManifest.pm       2019-02-14 
07:36:31.000000000 +0100
@@ -11,15 +11,22 @@
 use File::Basename;
 use Test::Builder;
 use File::Find;
+use Scalar::Util qw(blessed);
 
-our $VERSION = '1.33';
+our $VERSION = 1.39;
 our $VERBOSE = 1;
+our $HOME;
+our $test_bool = 1;
 
 my $test      = Test::Builder->new();
-my $test_bool = 1;
 my $plan      = 0;
 my $counter   = 0;
 
+my @excluded_files = qw(
+    pm_to_blib Makefile META.yml Build pod2htmd.tmp META.json
+    pod2htmi.tmp Build.bat .cvsignore MYMETA.json MYMETA.yml
+);
+
 sub import {
     my $self   = shift;
     my $caller = caller;
@@ -36,36 +43,74 @@
     $plan = 1 if(exists $plan{tests});
 }
 
-sub ok_manifest{
-    my ($hashref,$msg) = @_;
-    
-    $test->plan(tests => 1) unless $plan;
-    
-    my $is_hashref = 1;
-    $is_hashref = 0 unless ref($hashref);
-    
-    unless ( $is_hashref ) {
-        $msg = $hashref;
+sub _validate_args {
+    my ($hashref, $msg) = @_;
+
+    my $ref = ref $hashref;
+    if ( !$ref || 'HASH' ne $ref ) {
+        $msg     = $hashref if !$ref;
         $hashref = {};
     }
 
-    my $tmp_path = dirname( File::Spec->rel2abs( $0 ) );
+    my $ref_filter     = ref $hashref->{filter};
+    $hashref->{filter} = [] if !$ref_filter || 'ARRAY' ne $ref_filter;
+    $hashref->{filter} = [ grep{ blessed $_ && $_->isa('Regexp') } @{ 
$hashref->{filter} } ];
+
+    my $ref_exclude     = ref $hashref->{exclude};
+    $hashref->{exclude} = [] if !$ref_exclude || 'ARRAY' ne $ref_exclude;
+    push @{$hashref->{exclude}}, qw!/blib /_blib! if $test_bool;
 
-    if ( $hashref->{file} ) {
-        $tmp_path = dirname $hashref->{file};
+    for my $excluded_path ( @{ $hashref->{exclude} } ) {
+        croak 'path in excluded array must be "absolute"' if $excluded_path !~ 
 m!^/!;
     }
-    elsif ( $hashref->{dir} ) {
-        $tmp_path = $hashref->{dir};
+
+    my $bool = lc( $hashref->{bool} || '' );
+    $hashref->{bool} = $bool && $bool eq 'and' ? 'and' : 'or';
+    
+    return $hashref, $msg;
+}
+
+sub _check_excludes {
+    my ($hashref, $home) = @_;
+
+    my @excluded;
+
+    EXCLUDED_PATH:
+    for my $excluded_path ( @{ $hashref->{exclude} } ) {
+        next EXCLUDED_PATH if !defined $excluded_path;
+        next EXCLUDED_PATH if !length $excluded_path;
+
+        my $path = File::Spec->catdir($home, $excluded_path);
+
+        $path = File::Spec->rel2abs( $path ) if 
!File::Spec->file_name_is_absolute( $path );
+
+        next if !-e $path;
+
+        push @excluded, $path;
     }
     
-    my $bool = 1;
-    my $home = Cwd::realpath( $tmp_path );
-    my $manifest;
+    return \@excluded;
+}
+
+sub _find_home {
+    my ($params) = @_;
+
+       my $tmp_path = File::Spec->rel2abs( $0 );
+       my ($home, $volume, $dirs, $file, @dirs);
+
+    if ( $params->{file} ) {
+        $tmp_path = $params->{file};
+    }
+    elsif ( $params->{dir} ) {
+        $tmp_path = File::Spec->catfile( $params->{dir}, 'test' );
+    }
+
+    ($volume,$dirs,$file) = File::Spec->splitpath($tmp_path);
+    $home = File::Spec->catdir($volume, $dirs);
 
     my $counter = 0;
     while ( 1 ) {
-        my $manifest_path = File::Spec->catfile( $home . '/MANIFEST' );
-        last if -f $manifest_path;
+        last if -f File::Spec->catfile( $home, 'MANIFEST' );
 
         my $tmp_home = Cwd::realpath( File::Spec->catdir( $home, '..' ) );
 
@@ -73,159 +118,169 @@
         $home = $tmp_home;
     }
 
-    eval { $manifest = Cwd::realpath( $home . '/MANIFEST' ); 1; };
-    if ( !$manifest ) {
-        $test->BAILOUT( 'Cannot find a MANIFEST. Please check!' );
-    }
+    return $HOME if $HOME;
+    return $home;
+}
+
+sub ok_manifest {
+    my ($hashref,$msg) = _validate_args( @_ );
+    
+    $test->plan(tests => 1) if !$plan;
     
-    my $skip;
-    my $skip_path = File::Spec->catfile( $home, 'MANIFEST.SKIP' );
-    eval { $skip = Cwd::realpath( $skip_path ) if -f $skip_path; 1; };
+    my $home     = _find_home( $hashref );
+    my $manifest = File::Spec->catfile( $home, 'MANIFEST' );
 
-    my @dup_files     = ();
-    my @missing_files = ();
-    my @files_plus    = ();
-    my $arref         = ['/blib' , '/_build'];
-    my $filter        = $is_hashref && 
-                        $hashref->{filter} ? $hashref->{filter}  : [];
-    my $comb          = $is_hashref && 
-                        $hashref->{bool} && 
-                        $hashref->{bool} =~ m/^and$/i ?
-                               'and' :
-                               'or'; 
-                   
-    push @$arref, @{$hashref->{exclude}} 
-        if $is_hashref and exists $hashref->{exclude} and 
-            ref($hashref->{exclude}) eq 'ARRAY';
-    
-    for(@$arref){
-        croak 'path in excluded array must be "absolute"' unless m!^/!;
-        my $path = $home . $_;
-        next unless -e $path;
-        $_ = Cwd::realpath($path);
-    }
-    
-    @$arref = grep { defined }@$arref;
-    
-    unless( open my $fh, '<', $manifest ){
-        $bool = 0;
-        $msg  = "can't open $manifest";
+    if ( !-f $manifest ) {
+        $test->BAILOUT( 'Cannot find a MANIFEST. Please check!' );
     }
-    else{
-        { # extra block to use "last"
-        
-        my $files_in_skip = _read_skip( $skip, \$msg, \$bool );
-        last unless $files_in_skip;
 
-        my @files = _read_file( $fh );
-        close $fh;
-    
-        chomp @files;
-    
-        {
-            local $/ = "\r";
-            chomp @files;
-        }
+    my @files = _read_file( $manifest );
+    if ( !@files ) {
+        $test->diag( "No files in MANIFEST found (is it readable?)" );
+        return;
+    }
     
-        for my $tfile(@files){
-            $tfile = (split(/\s{2,}/,$tfile,2))[0];
-            next unless -e $home . '/' . $tfile;
-            $tfile = File::Spec->rel2abs($home . '/' . $tfile);
+    my $skip_path  = File::Spec->catfile( $home, 'MANIFEST.SKIP' );
+    my @skip_files = _read_file( $skip_path );
+    my $excluded   = _check_excludes( $hashref, $home );
+
+    for my $tfile ( @files ) {
+        $tfile = ( split /\s{2,}/, $tfile, 2 )[0];
+
+        next if !-e $home . '/' . $tfile;
+
+        $tfile = File::Spec->rel2abs($home . '/' . $tfile);
+    }
+
+    my (@dir_files, %excluded);
+
+    find({
+        no_chdir => 1,
+        follow   => 0,
+        wanted   => sub {
+            my $file         = $File::Find::name;
+            my $is_excluded  = _is_excluded(
+                $file,
+                $excluded,
+                $hashref->{filter},
+                $hashref->{bool},
+                \@skip_files,
+                $home,
+            );
+            
+            push @dir_files, File::Spec->rel2abs($file) if -f $file and 
!$is_excluded;
+            
+            $excluded{$file} = 1 if -f $file and $is_excluded
         }
-    
-        my (@dir_files,%files_hash,%excluded);
-        @files_hash{@files} = ();
-    
-        find({
-            no_chdir => 1,
-            follow   => 0,
-            wanted   => sub {
-                my $file         = $File::Find::name;
-                my $is_excluded  = _is_excluded(
-                    $file,
-                    $arref,
-                    $filter,
-                    $comb,
-                    $files_in_skip,
-                    $home,
-                );
-                
-                push(@dir_files,File::Spec->rel2abs($file)) if -f $file and 
!$is_excluded;
-                
-                $excluded{$file} = 1 if -f $file and $is_excluded
-            }
-        },$home);
+    },$home);
+
+    my $success = _check_manifest( \@dir_files, \@files, \%excluded, $msg );
+    $test->diag( "MANIFEST: $manifest" ) if !$success;
+
+    return $success;
+}
+
+sub _check_manifest {
+    my ($existing_files, $manifest_files, $excluded, $msg) = @_;
+
+    my @existing = @{ $existing_files || [] };
+    my @manifest = @{ $manifest_files || [] };
 
-        #use Data::Dumper;
-        #print STDERR ">>",++$counter,":",Dumper(\@files,\@dir_files);
-        SFILE:
-        for my $file(@dir_files){
-            for my $check(@files){
-                if($file eq $check){
-                    delete $files_hash{$check};
-                    next SFILE;
-                }
+    my $bool = 1;
+
+    my %files_hash;
+    @files_hash{@manifest} = ();
+    my %missing_files;
+
+    SFILE:
+    for my $file ( @existing ) {
+        for my $check ( @manifest ) {
+            if ( $file eq $check ) {
+                delete $files_hash{$check};
+                next SFILE;
             }
-            push(@missing_files,$file);
-            $bool = 0;
         }
-    
-        delete $files_hash{$_} for keys %excluded;
-        @files_plus = sort keys %files_hash;
-        $bool = 0 if scalar @files_plus > 0;
-
-        my %seen_files = ();
-        @dup_files = map { 1==$seen_files{$_}++ ? $_ : () } @files;
-        $bool = 0 if scalar @dup_files > 0;
-        
-        } # close extra block
+
+        $missing_files{$file} = 1;
     }
+
+    my @dup_files     = ();
+    my @files_plus    = ();
+
+    delete @files_hash{ keys %{$excluded || {}} };
+    delete @missing_files{ keys %{$excluded || {}} };
+
+    @files_plus = sort keys %files_hash;
+    $bool = 0 if scalar @files_plus > 0;
+    $bool = 0 if %missing_files;
+
+    my %seen_files = ();
+    @dup_files = map { $seen_files{$_}++ ? $_ : () } @manifest;
+    $bool = 0 if scalar @dup_files > 0;
     
     my $diag = 'The following files are not named in the MANIFEST file: '.
-               join(', ',@missing_files);
+               join(', ', sort keys %missing_files);
     my $plus = 'The following files are not part of distro but named in the 
MANIFEST file: '.
                join(', ',@files_plus);
     my $dup  = 'The following files appeared more than once in the MANIFEST 
file: '.
                join(', ',@dup_files);
     
-    $test->is_num($bool,$test_bool,$msg);
-    $test->diag($diag) if scalar @missing_files >= 1 and $test_bool == 1 and 
$VERBOSE;
-    $test->diag($plus) if scalar @files_plus    >= 1 and $test_bool == 1 and 
$VERBOSE;
-    $test->diag($dup)  if scalar @dup_files     >= 1 and $test_bool == 1 and 
$VERBOSE;
+    my $success;
+
+    if ( !$ENV{NO_MANIFEST_CHECK} ) {
+        $success = $test->is_num($bool,$test_bool,$msg);
+    }
+    else {
+        $success = $bool == $test_bool;
+    }
+
+    $test->diag($diag) if keys %missing_files     >= 1 and $test_bool == 1 and 
$VERBOSE;
+    $test->diag($plus) if scalar @files_plus >= 1 and $test_bool == 1 and 
$VERBOSE;
+    $test->diag($dup)  if scalar @dup_files  >= 1 and $test_bool == 1 and 
$VERBOSE;
+
+    return $success;
 }
 
 sub _read_file {
-    my ($fh) = @_;
+    my ($path) = @_;
+
+    return if !-r $path;
     
     my @files;
-    my $selftest = 0;
 
+    open my $fh, '<', $path;
     while( my $fh_line = <$fh> ){
         chomp $fh_line;
         
-        $selftest++ if $fh_line =~ m{# MANIFEST for Test-CheckManifest};
-
         next if $fh_line =~ m{ \A \s* \# }x;
-        next if $selftest && $fh_line =~ m{# selftest};
         
         my ($file);
         
-        if ( ($file) = $fh_line =~ /^'(\\[\\']|.+)+'\s*(.*)/) {
+        if ( ($file) = $fh_line =~ /^'(\\[\\']|.+)+'\s*/) {
             $file =~ s/\\([\\'])/$1/g;
         }
         else {
-            ($file) = $fh_line =~ /^(\S+)\s*(.*)/;
+            ($file) = $fh_line =~ /^(\S+)\s*/;
         }
 
         next unless $file;
 
         push @files, $file;
     }
+
+    close $fh;
     
+    chomp @files;
+
+    {
+        local $/ = "\r";
+        chomp @files;
+    }
+
     return @files;
 }
 
-sub _not_ok_manifest{
+sub _not_ok_manifest {
     $test_bool = 0;
     ok_manifest(@_);
     $test_bool = 1;
@@ -233,13 +288,13 @@
 
 sub _is_excluded{
     my ($file,$dirref,$filter,$bool,$files_in_skip,$home) = @_;
-    my @excluded_files = qw(
-        pm_to_blib Makefile META.yml Build pod2htmd.tmp 
-        pod2htmi.tmp Build.bat .cvsignore MYMETA.json MYMETA.yml
-    );
 
-    if ( $files_in_skip and 'ARRAY' eq ref $files_in_skip ) {
-        (my $local_file = $file) =~ s{\Q$home\E/?}{};
+    $home = '' if !defined $home;
+
+    return 0 if $files_in_skip and 'ARRAY' ne ref $files_in_skip;
+
+    if ( $files_in_skip ) {
+        (my $local_file = $file) =~ s{\Q$home\E}{};
         for my $rx ( @{$files_in_skip} ) {
             my $regex = qr/$rx/;
             return 1 if $local_file =~ $regex;
@@ -247,14 +302,18 @@
     }
         
     my @matches = grep{ $file =~ /$_$/ }@excluded_files;
+
+    return 1 if @matches;
+
+    my $is_in_dir = _is_in_dir( $file, $dirref );
     
-    if($bool eq 'or'){
-        push @matches, $file if grep{ref($_) and ref($_) eq 'Regexp' and $file 
=~ /$_/}@$filter;
-        push @matches, $file if grep{$file =~ /^\Q$_\E/}@$dirref;
+    $bool ||= 'or';
+    if ( $bool eq 'or' ) {
+        push @matches, $file if grep{ $file =~ /$_/ }@$filter;
+        push @matches, $file if $is_in_dir;
     }
     else{
-        if(grep{$file =~ /$_/ and ref($_) and ref($_) eq 'Regexp'}@$filter and
-           grep{$file =~ /^\Q$_\E/ and not ref($_)}@$dirref){
+        if( grep{ $file =~ /$_/ }@$filter and $is_in_dir ) {
             push @matches, $file;
         }
     }
@@ -262,22 +321,41 @@
     return scalar @matches;
 }
 
-sub _read_skip {
-    my ($skip, $msg, $bool) = @_;
+sub _is_in_dir {
+    my ($file, $excludes) = @_;
 
-    return [] unless $skip and -e $skip;
-    
-    my @files;
-    if( -e $skip and not open my $skip_fh, '<', $skip ) {
-        $$bool = 0;
-        $$msg  = "can't open $skip";
-        return;
-    }
-    else {
-        @files = _read_file( $skip_fh );
+    return if !defined $file;
+    return if !length $file;
+
+    my (undef, $path) = File::Spec->splitpath( $file );
+    my @file_parts    = File::Spec->splitdir( $path );
+    my $is_in_dir;
+
+    EXCLUDE:
+    for my $exclude ( @{ $excludes || [] } ) {
+
+        next EXCLUDE if !defined $exclude;
+        next EXCLUDE if !length $exclude;
+
+        my (undef, $exclude_dir, $efile) = File::Spec->splitpath( $exclude );
+        my @exclude_parts        = File::Spec->splitdir( $exclude_dir . $efile 
);
+
+        pop @exclude_parts if $exclude_parts[-1] eq '';
+
+        next EXCLUDE if @exclude_parts > @file_parts;
+
+        my @subparts = @file_parts[ 0 .. $#exclude_parts ];
+
+        my $exclude_join = join '/', @exclude_parts;
+        my $sub_join     = join '/', @subparts;
+
+        next EXCLUDE if $exclude_join ne $sub_join;
+
+        $is_in_dir = 1;
+        last EXCLUDE;
     }
 
-    return \@files;
+    return $is_in_dir;
 }
 
 1;
@@ -294,7 +372,7 @@
 
 =head1 VERSION
 
-version 1.33
+version 1.39
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/t/00_load.t 
new/Test-CheckManifest-1.39/t/00_load.t
--- old/Test-CheckManifest-1.33/t/00_load.t     2018-01-26 13:42:10.000000000 
+0100
+++ new/Test-CheckManifest-1.39/t/00_load.t     2019-02-14 07:36:31.000000000 
+0100
@@ -4,4 +4,4 @@
 use warnings;
 use Test::More tests => 1;
 
-use_ok('Test::CheckManifest');
\ No newline at end of file
+use_ok('Test::CheckManifest');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/t/01_selftest.t 
new/Test-CheckManifest-1.39/t/01_selftest.t
--- old/Test-CheckManifest-1.33/t/01_selftest.t 2018-01-26 13:42:10.000000000 
+0100
+++ new/Test-CheckManifest-1.39/t/01_selftest.t 2019-02-14 07:36:31.000000000 
+0100
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -T
+#!/usr/bin/perl
 
 use strict;
 use warnings;
@@ -6,7 +6,7 @@
 use File::Basename;
 use Test::More;
 
-eval "use Test::CheckManifest tests => 9";
+eval "use Test::CheckManifest tests => 10";
 plan skip_all => "Test::CheckManifest required" if $@;
 
 #$Test::CheckManifest::VERBOSE = 0;
@@ -14,20 +14,13 @@
 # create a directory and a file 
 my $home = dirname(File::Spec->rel2abs($0));
 
+my $dir   = File::Spec->catdir($home,'.git');
+my $dir2  = File::Spec->catdir($home,'test');
+my $file1 = File::Spec->catfile($dir,'test.txt');
+my $file2 = File::Spec->catfile($home,'test.svn');
+my $file3 = File::Spec->catfile($dir2,'hallo.txt');
 
 
-# untaint
-if ($home =~ /^([-\@\w.\/\\: ~]+)$/) {
-    $home = $1;
-} 
-else {
-    die "Bad data in $home"; 
-}
-
-my $dir  = $home . '/.git/';
-my $dir2 = $home . '/test/';
-my ($file1,$file2,$file3) = ($dir.'test.txt', $home . '/test.svn', 
$dir2.'hallo.txt');
-
 mkdir $dir;
 
 my $fh;
@@ -46,14 +39,25 @@
 Test::CheckManifest::_not_ok_manifest({filter  => [qr/\.git/],
                                        bool    => 'and',
                                        exclude => ['/t/test']}, 'filter AND 
exclude');
-ok_manifest({filter  => [qr/\.(git|build)/],
-             exclude => ['/t/test']}, 'filter OR exclude');
+
+Test::CheckManifest::_not_ok_manifest({
+    filter  => [qr/\.git|blib/],
+    exclude => ['/t/test'],
+    verbose => 1,
+}, 'filter OR exclude - test.svn is missing in MANIFEST');
+
+unlink $file2;
+
+ok_manifest({
+    filter  => [qr/\.(git|build)/],
+    exclude => ['/t/test'],
+}, 'filter OR exclude');
 
 unlink $file3;
 
 ok_manifest({filter => [qr/\.git/, qr/\.svn/, qr/\.build/ ]},'Filter \.git or 
\.svn');
 
-unlink $file2, $file1;
+unlink $file1;
 rmdir  $dir;
 rmdir  $dir2;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/t/02_validate_args.t 
new/Test-CheckManifest-1.39/t/02_validate_args.t
--- old/Test-CheckManifest-1.33/t/02_validate_args.t    1970-01-01 
01:00:00.000000000 +0100
+++ new/Test-CheckManifest-1.39/t/02_validate_args.t    2019-02-14 
07:36:31.000000000 +0100
@@ -0,0 +1,46 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use File::Spec;
+use File::Basename;
+use Test::More;
+use Test::CheckManifest;
+
+# create a directory and a file 
+my $sub = Test::CheckManifest->can('_validate_args');
+
+my $default = {
+    filter  => [],
+    exclude => [ qw!/blib /_blib! ],
+    bool    => 'or',
+};
+
+is_deeply [ $sub->( [], "hallo" ) ],                    [ $default, "hallo" ], 
'Empty Arrayref';
+is_deeply [ $sub->( { exclude => {} }, "hallo" ) ],     [ $default, "hallo" ], 
'exclude => {}';
+is_deeply [ $sub->( { exclude => [] }, "hallo" ) ],     [ $default, "hallo" ], 
'exclude => []';
+is_deeply [ $sub->( { exclude => 'test' }, "hallo" ) ], [ $default, "hallo" ], 
'exclude => "test"';
+
+is_deeply [ $sub->( { bool => {} }, "hallo" ) ],        [ $default, "hallo" ], 
'bool => {}';
+is_deeply [ $sub->( { bool => 'or' }, "hallo" )],       [ $default, "hallo" ], 
'bool => "or"';
+is_deeply [ $sub->( { bool => 'and' }, "hallo" )],      [ { %$default, bool => 
'and' }, "hallo" ], 'bool => "and"';
+is_deeply [ $sub->( { bool => '1' }, "hallo" )],        [ $default, "hallo" ], 
'bool => "1"';
+
+is_deeply [ $sub->( { filter => [] }, "hallo" ) ],          [ $default, 
"hallo" ], 'filter -> arrayref';
+is_deeply [ $sub->( { filter => {} }, "hallo" ) ],          [ $default, 
"hallo" ], 'filter -> empty hashref';
+is_deeply [ $sub->( { filter => 'test' }, "hallo" ) ],      [ $default, 
"hallo" ], 'filter -> string';
+is_deeply [ $sub->( { filter => [ 'hallo' ] }, "hallo" ) ], [ $default, 
"hallo" ], 'filter -> no regex';
+
+{
+    my $error;
+    eval {
+        $sub->( { exclude => ['testing'] } );
+        1;
+    } or do {
+        $error = $@;
+    };
+
+    like $error, qr/path in excluded array must be "absolute"/, 'relative 
paths';
+}
+
+done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/t/03_find_home.t 
new/Test-CheckManifest-1.39/t/03_find_home.t
--- old/Test-CheckManifest-1.33/t/03_find_home.t        1970-01-01 
01:00:00.000000000 +0100
+++ new/Test-CheckManifest-1.39/t/03_find_home.t        2019-02-14 
07:36:31.000000000 +0100
@@ -0,0 +1,29 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use File::Spec;
+use File::Basename;
+use Test::More;
+use Test::CheckManifest;
+use Cwd;
+
+# create a directory and a file 
+my $sub = Test::CheckManifest->can('_find_home');
+
+my $dir  = Cwd::realpath( File::Spec->catdir( dirname( __FILE__ ), '..' ) );
+my $file = File::Spec->catfile( $dir, 'MANIFEST' );
+
+my @dirs_one = File::Spec->splitdir( $dir );
+my @dirs_two = File::Spec->splitdir( $sub->( {} ) );
+is_deeply \@dirs_two, \@dirs_one, 'tmp_path => $0';
+
+my ($vol,$dirs,$file_one) = File::Spec->splitpath($file);
+
+my @dirs_three = File::Spec->splitdir( $sub->( {file => $file} ) );
+is_deeply \@dirs_three, \@dirs_one, 'file ' . $file;
+
+my @dirs_five = File::Spec->splitdir( $sub->( { dir  => $dir } )  );
+is_deeply \@dirs_five, \@dirs_one, 'dir ' . $dir;
+
+done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/t/04_check_excludes.t 
new/Test-CheckManifest-1.39/t/04_check_excludes.t
--- old/Test-CheckManifest-1.33/t/04_check_excludes.t   1970-01-01 
01:00:00.000000000 +0100
+++ new/Test-CheckManifest-1.39/t/04_check_excludes.t   2019-02-14 
07:36:31.000000000 +0100
@@ -0,0 +1,29 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Cwd;
+use File::Spec;
+use File::Basename;
+use Test::CheckManifest;
+use Test::More;
+
+# create a directory and a file 
+my $sub = Test::CheckManifest->can('_check_excludes');
+my $dir = Cwd::realpath( dirname __FILE__ );
+$dir    =~ s{.t\z}{};
+
+{
+    is_deeply $sub->( { exclude => ['testing'] }, $dir ), [], 'empty excludes';
+    is_deeply $sub->( { exclude => ['/t'] }, $dir ), [ File::Spec->catdir( 
$dir, 't' ) ], 't directory';
+    is_deeply $sub->( { exclude => ['/t'] }, '.' ), [ File::Spec->catdir( 
$dir, 't' ) ], 't directory - home: .';
+    is_deeply $sub->( { exclude => ['/t2'] }, '.' ), [ ], 't2 directory, that 
does not exist';
+    is_deeply $sub->( { exclude => [''] }, '' ), [ ], 'empty strings';
+    is_deeply $sub->( { exclude => [undef] }, '' ), [ ], 'undef excluded path';
+
+    is_deeply $sub->( { exclude => undef }, '' ), [ ], 'exclude is undef';
+}
+
+
+done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/t/05_is_excluded.t 
new/Test-CheckManifest-1.39/t/05_is_excluded.t
--- old/Test-CheckManifest-1.33/t/05_is_excluded.t      1970-01-01 
01:00:00.000000000 +0100
+++ new/Test-CheckManifest-1.39/t/05_is_excluded.t      2019-02-14 
07:36:31.000000000 +0100
@@ -0,0 +1,136 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use File::Spec;
+use File::Basename;
+use Test::More;
+use Cwd;
+
+use Test::More;
+use Test::CheckManifest;
+
+# create a directory and a file 
+my $sub = Test::CheckManifest->can('_is_excluded');
+
+my $dir   = Cwd::realpath( dirname __FILE__ );
+$dir      =~ s{.t\z}{};
+my $file  = File::Spec->catfile( $dir, 'MANIFEST.SKIP' );
+my $t_dir = File::Spec->catdir( $dir, 't' );
+my $meta  = 'META.yml';
+
+my $abs_t_file = File::Spec->rel2abs( __FILE__ );
+
+# my ($file,$dirref,$filter,$bool,$files_in_skip,$home) = @_;
+
+my @tests = (
+    [
+        [ $meta ],
+        1,
+        $meta,
+    ], 
+    [
+        [ $meta, [] ],
+        1,
+        "meta, empty dirref",
+    ], 
+    [
+        [ $meta, [$t_dir] ],
+        1,
+        "meta, t/ directory",
+    ], 
+    [
+        [ $abs_t_file ],
+        0,
+        "this file",
+    ], 
+    [
+        [ $abs_t_file, [] ],
+        0,
+        "this file, empty dirref",
+    ], 
+    [
+        [ $abs_t_file, [ $t_dir ] ],
+        1,
+        "this file, t/ dir",
+    ], 
+    [
+        [ $abs_t_file, [ $t_dir ], [qr/excluded/] ],
+        2,
+        "this file, t/ dir, filter: 'excluded'",
+    ], 
+    [
+        [ $abs_t_file, [ $t_dir ], [qr/excluded/], 'and' ],
+        1,
+        "this file, t/ dir, filter: 'excluded', bool => 'and'",
+    ], 
+    [
+        [ $abs_t_file, [ $t_dir ], [qr/not_excluded/] ],
+        1,
+        "this file, t/ dir, filter: 'not_excluded'",
+    ], 
+    [
+        [ $abs_t_file, [ $t_dir ], [qr/not_excluded/], 'and' ],
+        0,
+        "this file, t/ dir, filter: 'not_excluded', bool => 'and'",
+    ], 
+    [
+        [ $abs_t_file, [ $t_dir ], [qr/excluded/], 'and', [] ],
+        1,
+        "this file, t/ dir, filter: 'excluded', bool => 'and', empty 
files_in_skip",
+    ], 
+    [
+        [ $abs_t_file, [ $t_dir ], [qr/excluded/], 'and', [$abs_t_file] ],
+        1,
+        "this file, t/ dir, filter: 'excluded', bool => 'and', skip this file",
+    ], 
+    [
+        [ $abs_t_file . '.bak', [ $t_dir ], [qr/excluded/], 'and', 
[$abs_t_file . '.bak'] ],
+        1,
+        "<this_file>.bak, t/ dir, filter: 'excluded', bool => 'and', skip 
backup of this file",
+    ], 
+    [
+        [ '/tmp/test', [ $t_dir ], [qr/excluded/], 'and', [$abs_t_file . 
'.bak'] ],
+        0,
+        "/tmp/test, t/ dir, filter: 'excluded', bool => 'and', skip backup of 
this file",
+    ], 
+    [
+        [ '/tmp/test', [ $t_dir ], [qr/excluded/], 'and', ['/test'], '/tmp' ],
+        1,
+        "/tmp/test, t/ dir, filter: 'excluded', bool => 'and', skip /test in 
/tmp",
+    ], 
+    [
+        [ $abs_t_file, [ $t_dir ], [qr/excluded/], 'and', [$abs_t_file . 
'.bak'] ],
+        1,
+        "this file, t/ dir, filter: 'excluded', bool => 'and', skip backup of 
this file",
+    ], 
+    [
+        [ $abs_t_file, [ $t_dir ], [qr/excluded/], 'and', {} ],
+        0,
+        "this file, t/ dir, filter: 'excluded', bool => 'and', wrong reftype 
files_in_skip",
+    ], 
+    [
+        [ $abs_t_file, [ $t_dir ], [qr/excluded/], 'and' ],
+        1,
+        "this file, t/ dir, filter: 'excluded', bool => 'and'",
+    ], 
+    [
+        [ $abs_t_file, [ $t_dir ], [qr/excluded/], 'or' ],
+        2,
+        "this file, t/ dir, filter: 'excluded', bool => 'or'",
+    ], 
+    [
+        [ $abs_t_file, [ $t_dir ], [qr/excluded/], 'and', [$abs_t_file] ],
+        1,
+        "this file, t/ dir, filter: 'excluded', bool => 'and', excluded",
+    ], 
+);
+
+for my $test ( @tests ) {
+    my ($input, $check, $desc) = @{$test};
+    my $ret = $sub->( @{$input} );
+    is $ret, $check, $desc;
+}
+
+
+done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/t/06_bailout.t 
new/Test-CheckManifest-1.39/t/06_bailout.t
--- old/Test-CheckManifest-1.33/t/06_bailout.t  1970-01-01 01:00:00.000000000 
+0100
+++ new/Test-CheckManifest-1.39/t/06_bailout.t  2019-02-14 07:36:31.000000000 
+0100
@@ -0,0 +1,28 @@
+#!/usr/bin/perl
+
+use strict;
+
+use File::Spec;
+use File::Basename;
+use Test::More;
+
+eval "use Test::CheckManifest tests => 2";
+plan skip_all => "Test::CheckManifest required" if $@;
+
+$Test::CheckManifest::HOME = '/tmp/' . $$ . '/test';
+
+my $error;
+local *Test::Builder::BAILOUT = sub {
+    $error = 'BAILOUT';
+};
+
+my $success = ok_manifest({
+    filter  => [qr/\.(git|build)/],
+    exclude => ['/t/test'],
+}, 'filter OR exclude');
+
+is $error, 'BAILOUT';
+is $success, undef;
+
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/t/07_is_in_dir.t 
new/Test-CheckManifest-1.39/t/07_is_in_dir.t
--- old/Test-CheckManifest-1.33/t/07_is_in_dir.t        1970-01-01 
01:00:00.000000000 +0100
+++ new/Test-CheckManifest-1.39/t/07_is_in_dir.t        2019-02-14 
07:36:31.000000000 +0100
@@ -0,0 +1,48 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use File::Basename;
+use File::Spec;
+use Test::More;
+use Test::CheckManifest;
+
+use Cwd;
+
+my $sub = Test::CheckManifest->can('_is_in_dir');
+ok $sub;
+
+my $dir   = Cwd::realpath( dirname __FILE__ );
+$dir      =~ s{.t\z}{};
+my $t_dir = File::Spec->catdir( $dir, 't' );
+my $abs_t_file = File::Spec->rel2abs( __FILE__ );
+
+my @tests = (
+    [ '/t/test.txt', '/t', 1 ],
+    [ '/t/sub/test.txt', '/t', 1 ],
+    [ '/t/test.txt', '/t2', undef ],
+    [ '', '/t2', undef ],
+    [ '/t/test.txt', '', undef ],
+    [ undef, '', undef ],
+    [ undef, '/t', undef ],
+    [ undef, undef, undef ],
+    [ '/t/test.txt', undef, undef ],
+    [ '', undef, undef ],
+    [ '/t/sub/', '/t', 1 ],
+    [ '/t/sub/test', '/t/sub/', 1 ],
+    [ '/t/test', '/t/sub/', undef ],
+    [ __FILE__, dirname( __FILE__ ), 1 ],
+    [ $abs_t_file, $t_dir, 1 ],
+);
+
+for my $test ( @tests ) {
+    my ($file, $excludes, $expected) = @{$test};
+    my $result = $sub->( $file, [$excludes] );
+
+    is $result, $expected, sprintf "%s -> %s",
+        ( defined $file ? $file : '<undef>' ),
+        ( defined $excludes ? $excludes : '<undef>' );
+}
+
+done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/t/08_check_manifest.t 
new/Test-CheckManifest-1.39/t/08_check_manifest.t
--- old/Test-CheckManifest-1.33/t/08_check_manifest.t   1970-01-01 
01:00:00.000000000 +0100
+++ new/Test-CheckManifest-1.39/t/08_check_manifest.t   2019-02-14 
07:36:31.000000000 +0100
@@ -0,0 +1,113 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use File::Basename;
+use File::Spec;
+use Test::More;
+use Test::CheckManifest;
+
+use Cwd;
+
+local $ENV{NO_MANIFEST_CHECK} = 1;
+
+my $sub = Test::CheckManifest->can('_check_manifest');
+ok $sub;
+
+my $dir   = Cwd::realpath( dirname __FILE__ );
+$dir      =~ s{.t\z}{};
+my $t_dir = File::Spec->catdir( $dir, 't' );
+my $abs_t_file = File::Spec->rel2abs( __FILE__ );
+
+#    my ($existing_files, $manifest_files, $excluded, $msg) = @_;
+
+my $cnt = 0;
+
+{
+    my @tests = (
+        [ undef, undef, undef, 'test', 1 ],
+        [ ['/t/test'], undef, undef, 'test', '' ],
+        [ ['/t/test'], ['/t/test'], undef, 'test', 1 ],
+        [ ['/t/test'], undef, {'/t/test' => 1}, 'test', 1 ],
+        [ ['/t/test'], ['/test'], {'/t/test' => 1}, 'test', '' ],
+        [ ['/t/test'], ['/t/test', '/t/test'], undef, 'test', '' ],
+        [ ['/t/test','/t/test2'], ['/t/test'], undef, 'test', '' ],
+    );
+
+    for my $test ( @tests ) {
+        my @params   = @{$test};
+        my $expected = pop @params;
+
+        my $result = $sub->( @params );
+
+        is $result, $expected, "Test $cnt";
+        $cnt++;
+    }
+}
+
+{
+    local $Test::CheckManifest::test_bool = 0;
+    my @tests = (
+        [ undef, undef, undef, 'test', 1 ],
+        [ ['/t/test'], undef, undef, 'test', '' ],
+        [ ['/t/test'], ['/t/test'], undef, 'test', 1 ],
+        [ ['/t/test'], undef, {'/t/test' => 1}, 'test', 1 ],
+        [ ['/t/test'], ['/test'], {'/t/test' => 1}, 'test', '' ],
+        [ ['/t/test'], ['/t/test', '/t/test'], undef, 'test', '' ],
+        [ ['/t/test','/t/test2'], ['/t/test'], undef, 'test', '' ],
+    );
+
+    for my $test ( @tests ) {
+        my @params   = @{$test};
+        my $expected = pop @params;
+
+        my $result = $sub->( @params );
+        $cnt++;
+    }
+}
+
+{
+    local $Test::CheckManifest::test_bool = 0;
+    local $Test::CheckManifest::VERBOSE = 0;
+    my @tests = (
+        [ undef, undef, undef, 'test', 1 ],
+        [ ['/t/test'], undef, undef, 'test', '' ],
+        [ ['/t/test'], ['/t/test'], undef, 'test', 1 ],
+        [ ['/t/test'], undef, {'/t/test' => 1}, 'test', 1 ],
+        [ ['/t/test'], ['/test'], {'/t/test' => 1}, 'test', '' ],
+        [ ['/t/test'], ['/t/test', '/t/test'], undef, 'test', '' ],
+        [ ['/t/test','/t/test2'], ['/t/test'], undef, 'test', '' ],
+    );
+
+    for my $test ( @tests ) {
+        my @params   = @{$test};
+        my $expected = pop @params;
+
+        my $result = $sub->( @params );
+        $cnt++;
+    }
+}
+
+{
+    local $Test::CheckManifest::VERBOSE = 0;
+    my @tests = (
+        [ undef, undef, undef, 'test', 1 ],
+        [ ['/t/test'], undef, undef, 'test', '' ],
+        [ ['/t/test'], ['/t/test'], undef, 'test', 1 ],
+        [ ['/t/test'], undef, {'/t/test' => 1}, 'test', 1 ],
+        [ ['/t/test'], ['/test'], {'/t/test' => 1}, 'test', '' ],
+        [ ['/t/test'], ['/t/test', '/t/test'], undef, 'test', '' ],
+        [ ['/t/test','/t/test2'], ['/t/test'], undef, 'test', '' ],
+    );
+
+    for my $test ( @tests ) {
+        my @params   = @{$test};
+        my $expected = pop @params;
+
+        my $result = $sub->( @params );
+        $cnt++;
+    }
+}
+
+done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/t/author-pod-coverage.t 
new/Test-CheckManifest-1.39/t/author-pod-coverage.t
--- old/Test-CheckManifest-1.33/t/author-pod-coverage.t 1970-01-01 
01:00:00.000000000 +0100
+++ new/Test-CheckManifest-1.39/t/author-pod-coverage.t 2019-02-14 
07:36:31.000000000 +0100
@@ -0,0 +1,15 @@
+#!perl
+
+BEGIN {
+  unless ($ENV{AUTHOR_TESTING}) {
+    print qq{1..0 # SKIP these tests are for testing by the author\n};
+    exit
+  }
+}
+
+# This file was automatically generated by 
Dist::Zilla::Plugin::PodCoverageTests.
+
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
+
+all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/t/author-pod-syntax.t 
new/Test-CheckManifest-1.39/t/author-pod-syntax.t
--- old/Test-CheckManifest-1.33/t/author-pod-syntax.t   1970-01-01 
01:00:00.000000000 +0100
+++ new/Test-CheckManifest-1.39/t/author-pod-syntax.t   2019-02-14 
07:36:31.000000000 +0100
@@ -0,0 +1,15 @@
+#!perl
+
+BEGIN {
+  unless ($ENV{AUTHOR_TESTING}) {
+    print qq{1..0 # SKIP these tests are for testing by the author\n};
+    exit
+  }
+}
+
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
+use strict; use warnings;
+use Test::More;
+use Test::Pod 1.41;
+
+all_pod_files_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/t/xt/02_issue1.t 
new/Test-CheckManifest-1.39/t/xt/02_issue1.t
--- old/Test-CheckManifest-1.33/t/xt/02_issue1.t        2018-01-26 
13:42:10.000000000 +0100
+++ new/Test-CheckManifest-1.39/t/xt/02_issue1.t        2019-02-14 
07:36:31.000000000 +0100
@@ -11,3 +11,4 @@
     ok_manifest({ filter => [ qr/\.(git|build)/, qr/Test-CheckManifest-/ ], 
dir => $dir });
 
 }
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Test-CheckManifest-1.33/t/xt/03_issue7.t 
new/Test-CheckManifest-1.39/t/xt/03_issue7.t
--- old/Test-CheckManifest-1.33/t/xt/03_issue7.t        2018-01-26 
13:42:10.000000000 +0100
+++ new/Test-CheckManifest-1.39/t/xt/03_issue7.t        2019-02-14 
07:36:31.000000000 +0100
@@ -32,3 +32,4 @@
     }
 
 }
+


Reply via email to