#!/usr/bin/perl
plan
skip_all
=>
"Test::CheckManifest required"
if
$@;
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'
);
mkdir
$dir
;
my
$fh
;
open
$fh
,
'>'
,
$file1
and
close
$fh
;
open
$fh
,
'>'
,
$file2
and
close
$fh
;
Test::CheckManifest::_not_ok_manifest(
'expected: Manifest not ok'
);
ok_manifest({
filter
=> [
qr/\.(?:svn|git|build)/
]},
'Filter: \.(?:svn|git|build)'
);
Test::CheckManifest::_not_ok_manifest({
exclude
=> [
'/.git/'
]},
'expected: Manifest not ok (Exclude /.git/)'
);
mkdir
$dir2
;
open
$fh
,
'>'
,
$file3
and
close
$fh
;
Test::CheckManifest::_not_ok_manifest({
filter
=> [
qr/\.svn/
]},
'Filter: \.svn'
);
Test::CheckManifest::_not_ok_manifest({
exclude
=> [
'/.git/'
]},
'expected: Manifest not ok (Exclude /.git/) [2]'
);
Test::CheckManifest::_not_ok_manifest({
filter
=> [
qr/\.git/
],
exclude
=> [
'/.git/'
]},
'expected: Manifest not ok (exclude OR filter)'
);
Test::CheckManifest::_not_ok_manifest({
filter
=> [
qr/\.git/
],
bool
=>
'and'
,
exclude
=> [
'/t/test'
]},
'filter AND 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
$file1
;
rmdir
$dir
;
rmdir
$dir2
;