Browse Source

test: Add new pod-spell unit test

Guillem Jover 7 years ago
parent
commit
5104e0e0c0
4 changed files with 101 additions and 0 deletions
  1. 1 0
      Makefile.am
  2. 3 0
      README
  3. 1 0
      debian/changelog
  4. 96 0
      t/pod-spell.t

+ 1 - 0
Makefile.am

@@ -145,6 +145,7 @@ endif
 
 test_scripts = \
 	t/pod.t \
+	t/pod-spell.t \
 	t/syntax.t \
 	t/strict.t \
 	t/critic.t \

+ 3 - 0
README

@@ -76,8 +76,11 @@ To run the test suite («make check»):
 
   IO-String perl module
   Test::Pod perl module (optional)
+  Test::Spelling perl module (optional, author)
   Test::Strict perl module (optional)
   Test::Perl::Critic perl module (optional)
+  aspell (optional, author)
+  aspell-en (optional, author)
 
   Define the environment variable DPKG_DEVEL_MODE to run the test suite
   in development mode, to include tests that might not be pertinent during

+ 1 - 0
debian/changelog

@@ -75,6 +75,7 @@ dpkg (1.18.8) UNRELEASED; urgency=medium
   * Test suite:
     - Bump perlcritic ValuesAndExpressions::RequireNumberSeparators minimum
       to 99999.
+    - Add new pod-spell unit test.
   * Documentation:
     - Improve dpkg-buildpackage(1) on environment expectations.
     - Clarify the format of the db:Status-Abbrev virtual field in

+ 96 - 0
t/pod-spell.t

@@ -0,0 +1,96 @@
+#!/usr/bin/perl
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+use strict;
+use warnings;
+
+use Test::More;
+use Test::Dpkg;
+
+use IPC::Cmd qw(can_run);
+
+if (defined $ENV{srcdir}) {
+    chdir $ENV{srcdir} or die "cannot chdir to source directory: $!";
+}
+
+plan skip_all => 'author test' unless $ENV{AUTHOR_TESTING};
+
+eval 'use Test::Spelling';
+plan skip_all => 'Test::Spelling required for spell checking POD' if $@;
+
+if (not can_run('aspell')) {
+    plan skip_all => 'aspell required for spell checking POD';
+}
+
+if (qx(aspell dicts) !~ m/en_US/) {
+    plan skip_all => 'aspell en_US dictionary required for spell checking POD';
+}
+
+my @files = Test::Dpkg::all_perl_files();
+
+plan tests => scalar @files;
+
+set_spell_cmd('aspell list --encoding UTF-8 -l en_US -p /dev/null');
+add_stopwords(<DATA>);
+
+for my $file (@files) {
+    pod_file_spelling_ok($file);
+}
+
+__DATA__
+CVS
+DSC
+Dpkg
+IPC
+ORed
+OpenPGP
+XDG
+archqual
+bzip2
+canonicalized
+checksum
+checksums
+cmdline
+debian
+decompressor
+dep
+deps
+dpkg
+dpkg-buildflags
+dpkg-checkbuilddeps
+dpkg-dev
+dpkg-gencontrol
+dpkg-parsechangelog
+dsc
+dup'ed
+env
+envvar
+fieldnames
+ge
+gettext
+hurd
+keyrings
+le
+lzma
+multiarch
+nocheck
+qa
+reportfile
+rfc822
+sig
+substvars
+unparsed
+update-buildflags
+xz