aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 't/011pod.t')
-rw-r--r--t/011pod.t154
1 files changed, 83 insertions, 71 deletions
diff --git a/t/011pod.t b/t/011pod.t
index 8a7f374ce..2930ea112 100644
--- a/t/011pod.t
+++ b/t/011pod.t
@@ -21,111 +21,123 @@ use Pod::Checker;
use Pod::Coverage;
use Test::More tests => scalar(@Support::Files::testitems)
- + scalar(@Support::Files::module_files);
+ + scalar(@Support::Files::module_files);
# These methods do not need to be documented by default.
-use constant DEFAULT_WHITELIST => qr/^(?:new|new_from_list|check|run_create_validators)$/;
+use constant DEFAULT_WHITELIST =>
+ qr/^(?:new|new_from_list|check|run_create_validators)$/;
# These subroutines do not need to be documented, generally because
# you shouldn't call them yourself. No need to include subroutines
# of the form _foo(); they are already treated as private.
use constant SUB_WHITELIST => (
- 'Bugzilla::Flag' => qr/^(?:(force_)?retarget|force_cleanup)$/,
- 'Bugzilla::FlagType' => qr/^sqlify_criteria$/,
- 'Bugzilla::JobQueue' => qr/(?:^work_once|work_until_done|subprocess_worker)$/,
- 'Bugzilla::Search' => qr/^SPECIAL_PARSING$/,
- 'Bugzilla::Template' => qr/^field_name$/,
- 'Bugzilla::MIME' => qr/^as_string$/,
+ 'Bugzilla::Flag' => qr/^(?:(force_)?retarget|force_cleanup)$/,
+ 'Bugzilla::FlagType' => qr/^sqlify_criteria$/,
+ 'Bugzilla::JobQueue' => qr/(?:^work_once|work_until_done|subprocess_worker)$/,
+ 'Bugzilla::Search' => qr/^SPECIAL_PARSING$/,
+ 'Bugzilla::Template' => qr/^field_name$/,
+ 'Bugzilla::MIME' => qr/^as_string$/,
);
# These modules do not need to be documented, generally because they
# are subclasses of another module which already has all the relevant
# documentation. Partial names are allowed.
use constant MODULE_WHITELIST => qw(
- Bugzilla::Auth::Login::
- Bugzilla::Auth::Persist::
- Bugzilla::Auth::Verify::
- Bugzilla::BugUrl::
- Bugzilla::Config::
- Bugzilla::Extension::
- Bugzilla::Job::
- Bugzilla::Migrate::
- docs::lib::Pod::Simple::
+ Bugzilla::Auth::Login::
+ Bugzilla::Auth::Persist::
+ Bugzilla::Auth::Verify::
+ Bugzilla::BugUrl::
+ Bugzilla::Config::
+ Bugzilla::Extension::
+ Bugzilla::Job::
+ Bugzilla::Migrate::
+ docs::lib::Pod::Simple::
);
# Capture the TESTOUT from Test::More or Test::Builder for printing errors.
# This will handle verbosity for us automatically.
my $fh;
{
- no warnings qw(unopened); # Don't complain about non-existent filehandles
- if (-e \*Test::More::TESTOUT) {
- $fh = \*Test::More::TESTOUT;
- } elsif (-e \*Test::Builder::TESTOUT) {
- $fh = \*Test::Builder::TESTOUT;
- } else {
- $fh = \*STDOUT;
- }
+ no warnings qw(unopened); # Don't complain about non-existent filehandles
+ if (-e \*Test::More::TESTOUT) {
+ $fh = \*Test::More::TESTOUT;
+ }
+ elsif (-e \*Test::Builder::TESTOUT) {
+ $fh = \*Test::Builder::TESTOUT;
+ }
+ else {
+ $fh = \*STDOUT;
+ }
}
my @testitems = @Support::Files::testitems;
foreach my $file (@testitems) {
- $file =~ s/\s.*$//; # nuke everything after the first space (#comment)
- next if (!$file); # skip null entries
- my $error_count = podchecker($file, $fh);
- if ($error_count < 0) {
- ok(1,"$file does not contain any POD");
- } elsif ($error_count == 0) {
- ok(1,"$file has correct POD syntax");
- } else {
- ok(0,"$file has incorrect POD syntax --ERROR");
- }
+ $file =~ s/\s.*$//; # nuke everything after the first space (#comment)
+ next if (!$file); # skip null entries
+ my $error_count = podchecker($file, $fh);
+ if ($error_count < 0) {
+ ok(1, "$file does not contain any POD");
+ }
+ elsif ($error_count == 0) {
+ ok(1, "$file has correct POD syntax");
+ }
+ else {
+ ok(0, "$file has incorrect POD syntax --ERROR");
+ }
}
my %sub_whitelist = SUB_WHITELIST;
-my @module_files = sort @Support::Files::module_files;
+my @module_files = sort @Support::Files::module_files;
foreach my $file (@module_files) {
- my $module = $file;
- $module =~ s/\.pm$//;
- $module =~ s#/#::#g;
- $module =~ s/^extensions/Bugzilla::Extension/;
-
- my @whitelist = (DEFAULT_WHITELIST);
- push(@whitelist, $sub_whitelist{$module}) if $sub_whitelist{$module};
-
- # XXX Once all methods are correctly documented, nonwhitespace should
- # be set to 1.
- my $cover = Pod::Coverage->new(package => $module, nonwhitespace => 0,
- trustme => \@whitelist);
- my $coverage = $cover->coverage;
- my $reason = $cover->why_unrated;
-
- if (defined $coverage) {
- if ($coverage == 1) {
- ok(1, "$file has POD for all methods");
- }
- else {
- ok(0, "$file POD coverage is " . sprintf("%u%%", 100 * $coverage) .
- ". Undocumented methods: " . join(', ', $cover->uncovered));
- }
+ my $module = $file;
+ $module =~ s/\.pm$//;
+ $module =~ s#/#::#g;
+ $module =~ s/^extensions/Bugzilla::Extension/;
+
+ my @whitelist = (DEFAULT_WHITELIST);
+ push(@whitelist, $sub_whitelist{$module}) if $sub_whitelist{$module};
+
+ # XXX Once all methods are correctly documented, nonwhitespace should
+ # be set to 1.
+ my $cover = Pod::Coverage->new(
+ package => $module,
+ nonwhitespace => 0,
+ trustme => \@whitelist
+ );
+ my $coverage = $cover->coverage;
+ my $reason = $cover->why_unrated;
+
+ if (defined $coverage) {
+ if ($coverage == 1) {
+ ok(1, "$file has POD for all methods");
}
- # These errors are thrown when the module couldn't be loaded due to
- # a missing dependency.
- elsif ($reason =~ /^(?:no public symbols defined|requiring '[^']+' failed)$/) {
- ok(1, "$file cannot be loaded");
+ else {
+ ok(0,
+ "$file POD coverage is "
+ . sprintf("%u%%", 100 * $coverage)
+ . ". Undocumented methods: "
+ . join(', ', $cover->uncovered));
}
- elsif ($reason eq "couldn't find pod") {
- if (grep { $module =~ /^\Q$_\E/ } MODULE_WHITELIST) {
- ok(1, "$file does not contain any POD (whitelisted)");
- }
- else {
- ok(0, "$file POD coverage is 0%");
- }
+ }
+
+ # These errors are thrown when the module couldn't be loaded due to
+ # a missing dependency.
+ elsif ($reason =~ /^(?:no public symbols defined|requiring '[^']+' failed)$/) {
+ ok(1, "$file cannot be loaded");
+ }
+ elsif ($reason eq "couldn't find pod") {
+ if (grep { $module =~ /^\Q$_\E/ } MODULE_WHITELIST) {
+ ok(1, "$file does not contain any POD (whitelisted)");
}
else {
- ok(0, "$file: $reason");
+ ok(0, "$file POD coverage is 0%");
}
+ }
+ else {
+ ok(0, "$file: $reason");
+ }
}
exit 0;