diff options
author | Guillem Jover <guillem@debian.org> | 2014-11-17 10:40:45 +0100 |
---|---|---|
committer | Guillem Jover <guillem@debian.org> | 2015-01-28 20:50:30 +0100 |
commit | 8d557d6c8ea6f370e00d13eaa6234b2ef2d800dc (patch) | |
tree | e4b4a2b18509a8b0f5de20bf9fbc6433e14ac455 | |
parent | f38b214a69052741625e36e265f8b3e47959fa11 (diff) | |
download | dpkg-8d557d6c8ea6f370e00d13eaa6234b2ef2d800dc.tar.gz |
test: Check perl code compilation, warnings and strictness
-rw-r--r-- | Makefile.am | 8 | ||||
-rw-r--r-- | README | 1 | ||||
-rw-r--r-- | debian/changelog | 2 | ||||
-rw-r--r-- | t/strict.t | 40 |
4 files changed, 51 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am index f449e471e..3d979b976 100644 --- a/Makefile.am +++ b/Makefile.am @@ -144,6 +144,7 @@ endif test_scripts = \ t/pod.t \ + t/strict.t \ t/critic.t \ $(nil) @@ -151,6 +152,13 @@ test_data = \ t/critic/perlcriticrc \ $(nil) +# We need to use absolute paths here due to strict.t invoking a sub-perl, +# while changing dir to source dir on out-of-tree builds. +TEST_ENV_VARS = \ + DPKG_DATADIR=$(abs_top_srcdir) \ + PERL5LIB=$(abs_top_srcdir)/scripts:$(abs_top_srcdir)/dselect/methods \ + $(nil) + include $(top_srcdir)/check.am .PHONY: update-po @@ -79,6 +79,7 @@ To run the test suite («make check»): TimeDate perl module IO-String perl module Test::Pod perl module (optional) + Test::Strict perl module (optional) Test::Perl::Critic perl module (optional) Define the environment variable DPKG_DEVEL_MODE to run the test suite diff --git a/debian/changelog b/debian/changelog index 3f6b7e205..6bd2d2ee6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -24,6 +24,8 @@ dpkg (1.18.0) UNRELEASED; urgency=low Closes: #630342 * Rename and deprecate Dpkg::Gettext _g function with new g_. * Remove trailing newline from string literal in warning calls. + * Test suite: + - Check perl code compilation, warnings and strictness. -- Guillem Jover <guillem@debian.org> Tue, 09 Dec 2014 23:53:18 +0100 diff --git a/t/strict.t b/t/strict.t new file mode 100644 index 000000000..fafd05c1e --- /dev/null +++ b/t/strict.t @@ -0,0 +1,40 @@ +#!/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; + +eval q{ + use Test::Strict; + $Test::Strict::TEST_WARNINGS = 1; +}; +plan skip_all => 'Test::Strict required for testing syntax' if $@; + +if (defined $ENV{srcdir}) { + chdir $ENV{srcdir} or die "cannot chdir to source directory: $!"; +} + +my @files = Test::Dpkg::all_perl_files(); + +plan tests => scalar @files * 3; + +for my $file (@files) { + syntax_ok($file); + strict_ok($file); + warnings_ok($file); +} |