This is an automated email from the git hooks/post-receive script. abe pushed a commit to branch master in repository debsums.
commit 8d7eb5081c24e2f835c808bc2d8f7b98ae93fd5a Author: Axel Beckert <a...@deuxchevaux.org> Date: Wed Mar 25 21:55:38 2015 +0100 Add a small test suite for debsums Includes a minimal test environment and a test file running some common debsums commands. Use override_dh_auto_test for now to run it. --- debian/changelog | 1 + debian/rules | 3 ++ t/debsums.t | 44 +++++++++++++++++++++ t/fakechroot/usr/share/doc/fakepkg/README | 1 + .../usr/share/doc/fakepkg/changelog.Debian.gz | Bin 0 -> 161 bytes t/fakechroot/usr/share/doc/fakepkg/copyright | 14 +++++++ t/fakechroot/var/lib/dpkg/info/fakepkg.list | 3 ++ t/fakechroot/var/lib/dpkg/info/fakepkg.md5sums | 3 ++ t/fakechroot/var/lib/dpkg/status | 10 +++++ t/fakechroot/var/lib/dpkg/updates/.emptydir | 0 10 files changed, 79 insertions(+) diff --git a/debian/changelog b/debian/changelog index 2f1b49d..e4af500 100644 --- a/debian/changelog +++ b/debian/changelog @@ -34,6 +34,7 @@ debsums (2.1~dev) UNRELEASED; urgency=medium + Whitespace cleanup. + Exit with highest exit code of any of its child debsums processes exited. (Closes: #711560) + * Add simple test suite [ Andreas Beckmann ] * Fix accessing files in the host root filesystem (/) while checking an diff --git a/debian/rules b/debian/rules index 92a2130..4338967 100755 --- a/debian/rules +++ b/debian/rules @@ -12,5 +12,8 @@ override_dh_auto_install: override_dh_auto_clean: cd man && po4a --no-translations --rm-backups po4a.cfg +override_dh_auto_test: + prove -v + override_dh_installman: dh_installman `find man -type f -name '*.[18]'` diff --git a/t/debsums.t b/t/debsums.t new file mode 100644 index 0000000..3dfa84b --- /dev/null +++ b/t/debsums.t @@ -0,0 +1,44 @@ +#!/usr/bin/perl -T + +# Simple test for running debsums on a fake chroot + +use strict; +use warnings; + +use Test::More; +use Test::Command::Simple; + +# Default dummy chroot as test bed +my $chroot_option = '--root=t/fakechroot'; + +# Untaint stuff +delete $ENV{PATH}; + +# First check if we are testing a source package (debsums in current +# directory) or an installed package (full path). +my $command; +foreach my $cmd (qw(./debsums /usr/bin/debsums)) { + $command = $cmd if -x $cmd; +} +ok($command, "Command debsums found at $command"); +my @command = ($command, $chroot_option); + +# Test running without any further parameters +run(@command); +is(stderr, '', 'STDERR is empty'); +is(stdout, <<'EOT', 'STDOUT as expected (2 OK, 1 FAILED)'); +t/fakechroot/usr/share/doc/fakepkg/copyright OK +t/fakechroot/usr/share/doc/fakepkg/changelog.Debian.gz OK +t/fakechroot/usr/share/doc/fakepkg/README FAILED +EOT +is(rc >> 8, 2, 'Exit code is 2'); + +# Test option -c +run(@command, '-c'); +is(stderr, '', 'STDERR is empty'); +is(stdout, <<'EOT', 'STDOUT as expected (1 FAILED)'); +t/fakechroot/usr/share/doc/fakepkg/README +EOT +is(rc >> 8, 2, 'Exit code is 2'); + +done_testing(); diff --git a/t/fakechroot/usr/share/doc/fakepkg/README b/t/fakechroot/usr/share/doc/fakepkg/README new file mode 100644 index 0000000..753abf0 --- /dev/null +++ b/t/fakechroot/usr/share/doc/fakepkg/README @@ -0,0 +1 @@ +This file should be reported as FAIL by debsums diff --git a/t/fakechroot/usr/share/doc/fakepkg/changelog.Debian.gz b/t/fakechroot/usr/share/doc/fakepkg/changelog.Debian.gz new file mode 100644 index 0000000..bdbec22 Binary files /dev/null and b/t/fakechroot/usr/share/doc/fakepkg/changelog.Debian.gz differ diff --git a/t/fakechroot/usr/share/doc/fakepkg/copyright b/t/fakechroot/usr/share/doc/fakepkg/copyright new file mode 100644 index 0000000..ecf2c92 --- /dev/null +++ b/t/fakechroot/usr/share/doc/fakepkg/copyright @@ -0,0 +1,14 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Comment: This is a fake copyright file, part of debsums' test suite + +Files: * +Copyright: + 2015 Axel Beckert <a...@debian.org> +License: GPL + This is free software, licensed under the terms of the GNU General Public + License. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A + PARTICULAR PURPOSE. + . + You are free to distribute this software under the terms of the GNU General + Public License. On Debian systems, the complete text of the GNU General + Public License can be found in /usr/share/common-licenses/GPL file. diff --git a/t/fakechroot/var/lib/dpkg/info/fakepkg.list b/t/fakechroot/var/lib/dpkg/info/fakepkg.list new file mode 100644 index 0000000..8b3cf25 --- /dev/null +++ b/t/fakechroot/var/lib/dpkg/info/fakepkg.list @@ -0,0 +1,3 @@ +/usr/share/doc/fakepkg/copyright +/usr/share/doc/fakepkg/changelog.Debian.gz +/usr/share/doc/fakepkg/README diff --git a/t/fakechroot/var/lib/dpkg/info/fakepkg.md5sums b/t/fakechroot/var/lib/dpkg/info/fakepkg.md5sums new file mode 100644 index 0000000..492102e --- /dev/null +++ b/t/fakechroot/var/lib/dpkg/info/fakepkg.md5sums @@ -0,0 +1,3 @@ +52f02364e60d4865543a2e935533ef33 usr/share/doc/fakepkg/copyright +082797d51b0c32d421e274b05926618a usr/share/doc/fakepkg/changelog.Debian.gz +deadbeefcafebabedeadbeefcafebabe usr/share/doc/fakepkg/README diff --git a/t/fakechroot/var/lib/dpkg/status b/t/fakechroot/var/lib/dpkg/status new file mode 100644 index 0000000..4c51cf0 --- /dev/null +++ b/t/fakechroot/var/lib/dpkg/status @@ -0,0 +1,10 @@ +Package: fakepkg +Status: install ok installed +Priority: extra +Section: metapackages +Installed-Size: 123 +Maintainer: Axel Beckert <abe+debsums-testsu...@debian.org> +Architecture: all +Version: 1 +Description: dummy package for debsums' test suite + This is an empty dummy package just used for debsums' test suite. diff --git a/t/fakechroot/var/lib/dpkg/updates/.emptydir b/t/fakechroot/var/lib/dpkg/updates/.emptydir new file mode 100644 index 0000000..e69de29 -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/debsums.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits