Package: lintian Version: 2.5.50.1 Severity: wishlist Tags: patch Dear Maintainer,
I wish lintian could notify packages maintainers about the absence of a functional testsuite using autopkgtest, just as a reminder. It is important for quality assurance have these kind of tests in all packages, and I talked about it with some others DDs and some of them do not have any idea what I was saying. Nowadays, Debian CI covers almost 20% of the source packages in archive, the idea here is to increase this number. I attached a patch which I am verifying if the 'Testsuite' is in debian/control and if this field contains the string 'autopkgtest'. Now we have just autopkgtest* (with some teams wrappers) available, because of this I am trying to find this specific string. The other 2 patches attached try to fix the broken tests after this modification, the templates used did not have the 'Testsuite' field. I hope you consider the patches. Cheers. -- System Information: Debian Release: 9.0 APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 4.9.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages lintian depends on: ii binutils 2.28-2 ii bzip2 1.0.6-8.1 ii diffstat 1.61-1+b1 ii file 1:5.29-3 ii gettext 0.19.8.1-2 ii intltool-debian 0.35.0+20060710.4 ii libapt-pkg-perl 0.1.32 ii libarchive-zip-perl 1.59-1 ii libclass-accessor-perl 0.34-1 ii libclone-perl 0.38-2+b1 ii libdpkg-perl 1.18.23 ii libemail-valid-perl 1.202-1 ii libfile-basedir-perl 0.07-1 ii libipc-run-perl 0.94-1 ii liblist-moreutils-perl 0.416-1+b1 ii libparse-debianchangelog-perl 1.2.0-12 ii libperl5.24 [libdigest-sha-perl] 5.24.1-2 ii libtext-levenshtein-perl 0.13-1 ii libtimedate-perl 2.3000-2 ii liburi-perl 1.71-1 ii libyaml-libyaml-perl 0.63-2 ii man-db 2.7.6.1-2 ii patchutils 0.3.4-2 ii perl 5.24.1-2 ii t1utils 1.39-2 ii xz-utils 5.2.2-1.2+b1 Versions of packages lintian recommends: ii dpkg 1.18.23 ii libperlio-gzip-perl 0.19-1+b2 ii perl 5.24.1-2 ii perl-modules-5.24 [libautodie-perl] 5.24.1-2 Versions of packages lintian suggests: pn binutils-multiarch <none> ii dpkg-dev 1.18.23 ii libhtml-parser-perl 3.72-3 ii libtext-template-perl 1.46-1 -- no debconf information
>From 7571fdf6dccff02733c5b620e8cb85aabb85004f Mon Sep 17 00:00:00 2001 From: Lucas Kanashiro <[email protected]> Date: Mon, 3 Apr 2017 17:21:03 -0300 Subject: [PATCH 2/3] add functional testsuite in tests templates --- t/runtests | 2 +- t/templates/tests/pedantic/debian/tests/control | 1 + t/templates/tests/pedantic/debian/tests/test | 2 ++ t/templates/tests/skel/debian/tests/control | 1 + t/templates/tests/skel/debian/tests/test | 2 ++ 5 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 t/templates/tests/pedantic/debian/tests/control create mode 100755 t/templates/tests/pedantic/debian/tests/test create mode 100644 t/templates/tests/skel/debian/tests/control create mode 100755 t/templates/tests/skel/debian/tests/test diff --git a/t/runtests b/t/runtests index 020f3f8dc..dd4da7ed2 100755 --- a/t/runtests +++ b/t/runtests @@ -113,7 +113,7 @@ my $RUNNER_TS = (stat($0))[9]; chomp $ARCHITECTURE; our %TEMPLATES = ( - 'tests' => ['debian/changelog', 'debian/control', 'debian/compat'], + 'tests' => ['debian/changelog', 'debian/control', 'debian/compat', 'debian/tests'], 'debs' => ['changelog', 'control', 'Makefile'], 'source' => ['changelog', 'control', 'dsc.in'], ); diff --git a/t/templates/tests/pedantic/debian/tests/control b/t/templates/tests/pedantic/debian/tests/control new file mode 100644 index 000000000..b8562954d --- /dev/null +++ b/t/templates/tests/pedantic/debian/tests/control @@ -0,0 +1 @@ +Tests: test diff --git a/t/templates/tests/pedantic/debian/tests/test b/t/templates/tests/pedantic/debian/tests/test new file mode 100755 index 000000000..039e4d006 --- /dev/null +++ b/t/templates/tests/pedantic/debian/tests/test @@ -0,0 +1,2 @@ +#!/bin/sh +exit 0 diff --git a/t/templates/tests/skel/debian/tests/control b/t/templates/tests/skel/debian/tests/control new file mode 100644 index 000000000..b8562954d --- /dev/null +++ b/t/templates/tests/skel/debian/tests/control @@ -0,0 +1 @@ +Tests: test diff --git a/t/templates/tests/skel/debian/tests/test b/t/templates/tests/skel/debian/tests/test new file mode 100755 index 000000000..039e4d006 --- /dev/null +++ b/t/templates/tests/skel/debian/tests/test @@ -0,0 +1,2 @@ +#!/bin/sh +exit 0 -- 2.11.0
>From 15f4d425368ba4612e3e0ff9cd8796f66e5bcff9 Mon Sep 17 00:00:00 2001 From: Lucas Kanashiro <[email protected]> Date: Mon, 3 Apr 2017 17:23:32 -0300 Subject: [PATCH 3/3] add functional testsuite in source tests --- t/runtests | 2 +- t/source/changelog-file-symlink/Makefile | 1 + t/source/changelog-file-symlink/dsc.in.in | 1 + t/source/control-field-traversal-2/Makefile | 1 + t/source/control-field-traversal-2/dsc.in.in | 1 + t/source/control-file-duplicate-field/Makefile | 1 + t/source/control-file-duplicate-field/dsc.in.in | 1 + t/source/control-file-missing-separator/Makefile | 1 + t/source/control-file-missing-separator/dsc.in.in | 1 + t/source/control-file-syntax-error/Makefile | 1 + t/source/control-file-syntax-error/dsc.in.in | 1 + t/source/cruft-ancient-file/Makefile | 1 + t/source/debconf-traversal/Makefile | 1 + t/source/debconf-traversal/dsc.in.in | 1 + t/source/debian-source-dir-traversal-1/Makefile | 1 + t/source/debian-source-dir-traversal-1/dsc.in.in | 1 + t/source/debian-source-dir-traversal-2/Makefile | 1 + t/source/debian-source-dir-traversal-2/dsc.in.in | 1 + t/source/debian-source-dir-unknown-source-format/Makefile | 1 + t/source/debian-source-dir-unknown-source-format/dsc.in.in | 1 + t/source/debian-symlink/Makefile | 1 + t/source/debian-symlink/dsc.in.in | 1 + t/source/fields-src-bad-version/Makefile | 1 + t/source/fields-src-bad-version/dsc.in.in | 1 + t/source/fields-src-fields-filename/Makefile | 1 + t/source/fields-src-fields-filename/dsc.in.in | 1 + t/source/magic-architecture-srcpkg-ok/Makefile | 1 + t/source/magic-architecture-srcpkg-wrong/Makefile | 1 + t/source/no-sha256-checksum/Makefile | 1 + t/source/no-sha256-checksum/dsc.in.in | 1 + t/source/package-version-0/Makefile | 1 + t/source/testsuite-inconsistent-field/Makefile | 4 +--- t/source/testsuite-inconsistent-field/tags | 1 + t/source/unpack-srcpkg-dot-dir/Makefile | 1 + t/source/unpack-srcpkg-dot-subdir/Makefile | 1 + t/source/unpack-srcpkg-no-subdir/Makefile | 1 + t/source/unpack-srcpkg-xz/Makefile | 1 + t/templates/source/skel/tests/control | 1 + t/templates/source/skel/tests/test | 2 ++ 39 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 t/templates/source/skel/tests/control create mode 100755 t/templates/source/skel/tests/test diff --git a/t/runtests b/t/runtests index dd4da7ed2..0599692dc 100755 --- a/t/runtests +++ b/t/runtests @@ -115,7 +115,7 @@ chomp $ARCHITECTURE; our %TEMPLATES = ( 'tests' => ['debian/changelog', 'debian/control', 'debian/compat', 'debian/tests'], 'debs' => ['changelog', 'control', 'Makefile'], - 'source' => ['changelog', 'control', 'dsc.in'], + 'source' => ['changelog', 'control', 'dsc.in', 'tests/control', 'tests/test'], ); my $DATE = safe_qx(qw(date -R)); chomp $DATE; diff --git a/t/source/changelog-file-symlink/Makefile b/t/source/changelog-file-symlink/Makefile index 931b1df7a..5c83bc8d4 100644 --- a/t/source/changelog-file-symlink/Makefile +++ b/t/source/changelog-file-symlink/Makefile @@ -5,6 +5,7 @@ all: mkdir $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ mv $(dir)/debian/changelog $(dir)/debian/changelog.old ln -s changelog.old $(dir)/debian/changelog echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat diff --git a/t/source/changelog-file-symlink/dsc.in.in b/t/source/changelog-file-symlink/dsc.in.in index 98528217d..8166eb684 100644 --- a/t/source/changelog-file-symlink/dsc.in.in +++ b/t/source/changelog-file-symlink/dsc.in.in @@ -6,6 +6,7 @@ Version: 1 Maintainer: Debian Lintian Maintainers <[email protected]> Standards-Version: {$standards_version} Build-Depends: debhelper (>= 9) +Testsuite: autopkgtest Checksums-Sha1: @SHA1@ @SIZE@ changelog-file-symlink_1.tar.gz Checksums-Sha256: diff --git a/t/source/control-field-traversal-2/Makefile b/t/source/control-field-traversal-2/Makefile index b2062fce0..5d7b9ef64 100644 --- a/t/source/control-field-traversal-2/Makefile +++ b/t/source/control-field-traversal-2/Makefile @@ -5,6 +5,7 @@ all: mkdir $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat mkdir $(dir)/debian/source echo 1.0 > $(dir)/debian/source/format diff --git a/t/source/control-field-traversal-2/dsc.in.in b/t/source/control-field-traversal-2/dsc.in.in index 6d0587138..004ae8f17 100644 --- a/t/source/control-field-traversal-2/dsc.in.in +++ b/t/source/control-field-traversal-2/dsc.in.in @@ -6,6 +6,7 @@ Version: 1 Maintainer: Debian Lintian Maintainers <[email protected]> Standards-Version: {$standards_version} Build-Depends: debhelper (>= 7) +Testsuite: autopkgtest Checksums-Sha1: @SHA1@ @SIZE@ control-field-traversal-2_1.tar.gz Checksums-Sha256: diff --git a/t/source/control-file-duplicate-field/Makefile b/t/source/control-file-duplicate-field/Makefile index f9b5b8f1f..69bf91552 100644 --- a/t/source/control-file-duplicate-field/Makefile +++ b/t/source/control-file-duplicate-field/Makefile @@ -5,6 +5,7 @@ all: mkdir $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat mkdir $(dir)/debian/source echo 1.0 > $(dir)/debian/source/format diff --git a/t/source/control-file-duplicate-field/dsc.in.in b/t/source/control-file-duplicate-field/dsc.in.in index e7bd2d1f2..2fe5c66d6 100644 --- a/t/source/control-file-duplicate-field/dsc.in.in +++ b/t/source/control-file-duplicate-field/dsc.in.in @@ -6,6 +6,7 @@ Version: 1 Maintainer: Debian Lintian Maintainers <[email protected]> Standards-Version: {$standards_version} Build-Depends: debhelper (>= 7) +Testsuite: autopkgtest Checksums-Sha1: @SHA1@ @SIZE@ control-file-duplicate-field_1.tar.gz Checksums-Sha256: diff --git a/t/source/control-file-missing-separator/Makefile b/t/source/control-file-missing-separator/Makefile index 2fd3dfe50..f5c854f47 100644 --- a/t/source/control-file-missing-separator/Makefile +++ b/t/source/control-file-missing-separator/Makefile @@ -5,6 +5,7 @@ all: mkdir $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat mkdir $(dir)/debian/source echo 1.0 > $(dir)/debian/source/format diff --git a/t/source/control-file-missing-separator/dsc.in.in b/t/source/control-file-missing-separator/dsc.in.in index e66300ecd..fefc14f7d 100644 --- a/t/source/control-file-missing-separator/dsc.in.in +++ b/t/source/control-file-missing-separator/dsc.in.in @@ -6,6 +6,7 @@ Version: 1 Maintainer: Debian Lintian Maintainers <[email protected]> Standards-Version: {$standards_version} Build-Depends: debhelper (>= 7), fiddle [amd64 powerpc mips mipsel hppa s390], faddle (>> 2) [sparc i386 amd64] +Testsuite: autopkgtest Checksums-Sha1: @SHA1@ @SIZE@ control-file-missing-separator_1.tar.gz Checksums-Sha256: diff --git a/t/source/control-file-syntax-error/Makefile b/t/source/control-file-syntax-error/Makefile index 3e08ee003..f133ce1de 100644 --- a/t/source/control-file-syntax-error/Makefile +++ b/t/source/control-file-syntax-error/Makefile @@ -5,6 +5,7 @@ all: mkdir $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat mkdir $(dir)/debian/source echo 1.0 > $(dir)/debian/source/format diff --git a/t/source/control-file-syntax-error/dsc.in.in b/t/source/control-file-syntax-error/dsc.in.in index 8a918f4b9..5894165a8 100644 --- a/t/source/control-file-syntax-error/dsc.in.in +++ b/t/source/control-file-syntax-error/dsc.in.in @@ -6,6 +6,7 @@ Version: 1 Maintainer: Debian Lintian Maintainers <[email protected]> Standards-Version: {$standards_version} Build-Depends: debhelper (>= 7) +Testsuite: autopkgtest Checksums-Sha1: @SHA1@ @SIZE@ control-file-syntax-error_1.tar.gz Checksums-Sha256: diff --git a/t/source/cruft-ancient-file/Makefile b/t/source/cruft-ancient-file/Makefile index 584a18f8b..2ce82d725 100644 --- a/t/source/cruft-ancient-file/Makefile +++ b/t/source/cruft-ancient-file/Makefile @@ -8,6 +8,7 @@ all: tar -c -f $(name)_1.0.orig.tar.gz -z $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat echo '# foo' > $(dir)/debian/watch mkdir $(dir)/debian/source diff --git a/t/source/debconf-traversal/Makefile b/t/source/debconf-traversal/Makefile index 91c800a75..e66a1f829 100644 --- a/t/source/debconf-traversal/Makefile +++ b/t/source/debconf-traversal/Makefile @@ -5,6 +5,7 @@ all: mkdir $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat mkdir $(dir)/debian/source echo 1.0 > $(dir)/debian/source/format diff --git a/t/source/debconf-traversal/dsc.in.in b/t/source/debconf-traversal/dsc.in.in index 7ba83e73c..c3da5ab5b 100644 --- a/t/source/debconf-traversal/dsc.in.in +++ b/t/source/debconf-traversal/dsc.in.in @@ -6,6 +6,7 @@ Version: 1 Maintainer: Debian Lintian Maintainers <[email protected]> Standards-Version: {$standards_version} Build-Depends: debhelper (>= 7) +Testsuite: autopkgtest Checksums-Sha1: @SHA1@ @SIZE@ debconf-traversal_1.tar.gz Checksums-Sha256: diff --git a/t/source/debian-source-dir-traversal-1/Makefile b/t/source/debian-source-dir-traversal-1/Makefile index e8ffe1ee9..d49661c5e 100644 --- a/t/source/debian-source-dir-traversal-1/Makefile +++ b/t/source/debian-source-dir-traversal-1/Makefile @@ -5,6 +5,7 @@ all: mkdir $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ # prevent patch-system-but-no-source-readme echo "Hallo World" > $(dir)/debian/README.source echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat diff --git a/t/source/debian-source-dir-traversal-1/dsc.in.in b/t/source/debian-source-dir-traversal-1/dsc.in.in index 910e5b13d..98183c179 100644 --- a/t/source/debian-source-dir-traversal-1/dsc.in.in +++ b/t/source/debian-source-dir-traversal-1/dsc.in.in @@ -6,6 +6,7 @@ Version: 1 Maintainer: Debian Lintian Maintainers <[email protected]> Standards-Version: {$standards_version} Build-Depends: debhelper (>= 7), quilt +Testsuite: autopkgtest Checksums-Sha1: @SHA1@ @SIZE@ debian-source-dir-traversal-1_1.tar.gz Checksums-Sha256: diff --git a/t/source/debian-source-dir-traversal-2/Makefile b/t/source/debian-source-dir-traversal-2/Makefile index fc318d71f..caa3e5e94 100644 --- a/t/source/debian-source-dir-traversal-2/Makefile +++ b/t/source/debian-source-dir-traversal-2/Makefile @@ -5,6 +5,7 @@ all: mkdir $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ # Link to the lab entry - should trigger a myriad of # "unknown-file-in-debian-source" tags, if lintian is vulnerable ln -s ../../ $(dir)/debian/source diff --git a/t/source/debian-source-dir-traversal-2/dsc.in.in b/t/source/debian-source-dir-traversal-2/dsc.in.in index 8bcf0e881..320d127ab 100644 --- a/t/source/debian-source-dir-traversal-2/dsc.in.in +++ b/t/source/debian-source-dir-traversal-2/dsc.in.in @@ -6,6 +6,7 @@ Version: 1 Maintainer: Debian Lintian Maintainers <[email protected]> Standards-Version: {$standards_version} Build-Depends: debhelper (>= 7) +Testsuite: autopkgtest Checksums-Sha1: @SHA1@ @SIZE@ debian-source-dir-traversal-2_1.tar.gz Checksums-Sha256: diff --git a/t/source/debian-source-dir-unknown-source-format/Makefile b/t/source/debian-source-dir-unknown-source-format/Makefile index 4b20c5c78..b9db9d197 100644 --- a/t/source/debian-source-dir-unknown-source-format/Makefile +++ b/t/source/debian-source-dir-unknown-source-format/Makefile @@ -5,6 +5,7 @@ all: mkdir $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat mkdir $(dir)/debian/source echo "3.0 (unknown-format)" > $(dir)/debian/source/format diff --git a/t/source/debian-source-dir-unknown-source-format/dsc.in.in b/t/source/debian-source-dir-unknown-source-format/dsc.in.in index b62c59165..0df0980c7 100644 --- a/t/source/debian-source-dir-unknown-source-format/dsc.in.in +++ b/t/source/debian-source-dir-unknown-source-format/dsc.in.in @@ -6,6 +6,7 @@ Version: 1 Maintainer: Debian Lintian Maintainers <[email protected]> Standards-Version: {$standards_version} Build-Depends: debhelper (>= 7) +Testsuite: autopkgtest Checksums-Sha1: @SHA1@ @SIZE@ debian-source-dir-unknown-source-format_1.tar.gz Checksums-Sha256: diff --git a/t/source/debian-symlink/Makefile b/t/source/debian-symlink/Makefile index ffa2799ca..c1ebc6600 100644 --- a/t/source/debian-symlink/Makefile +++ b/t/source/debian-symlink/Makefile @@ -5,6 +5,7 @@ all: mkdir $(dir) ln -s . $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat mkdir $(dir)/debian/source echo 1.0 > $(dir)/debian/source/format diff --git a/t/source/debian-symlink/dsc.in.in b/t/source/debian-symlink/dsc.in.in index 05c2fd56a..47d41188c 100644 --- a/t/source/debian-symlink/dsc.in.in +++ b/t/source/debian-symlink/dsc.in.in @@ -6,6 +6,7 @@ Version: 1 Maintainer: Debian Lintian Maintainers <[email protected]> Standards-Version: {$standards_version} Build-Depends: debhelper (>= 7) +Testsuite: autopkgtest Checksums-Sha1: @SHA1@ @SIZE@ debian-symlink_1.tar.gz Checksums-Sha256: diff --git a/t/source/fields-src-bad-version/Makefile b/t/source/fields-src-bad-version/Makefile index 3e08ee003..f133ce1de 100644 --- a/t/source/fields-src-bad-version/Makefile +++ b/t/source/fields-src-bad-version/Makefile @@ -5,6 +5,7 @@ all: mkdir $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat mkdir $(dir)/debian/source echo 1.0 > $(dir)/debian/source/format diff --git a/t/source/fields-src-bad-version/dsc.in.in b/t/source/fields-src-bad-version/dsc.in.in index 2269f2a1f..af8225078 100644 --- a/t/source/fields-src-bad-version/dsc.in.in +++ b/t/source/fields-src-bad-version/dsc.in.in @@ -6,6 +6,7 @@ Version: 1 Maintainer: Debian Lintian Maintainers <[email protected]> Standards-Version: {$standards_version} Build-Depends: debhelper (>= 7), g++ (>= s4.0), gcc ((>= 4) +Testsuite: autopkgtest Checksums-Sha1: @SHA1@ @SIZE@ control-file-syntax-error_1.tar.gz Checksums-Sha256: diff --git a/t/source/fields-src-fields-filename/Makefile b/t/source/fields-src-fields-filename/Makefile index 7fff7999a..0a4e36ecf 100644 --- a/t/source/fields-src-fields-filename/Makefile +++ b/t/source/fields-src-fields-filename/Makefile @@ -9,6 +9,7 @@ all: echo "1.0" > $(dir)/debian/source/format echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ tar cfz $(dsc)_1.tar.gz $(dir) subst-dsc $(dsc)_1.tar.gz < dsc.in > $(dsc)_1.dsc mv $(dsc)_1.dsc $(name)_1.dsc diff --git a/t/source/fields-src-fields-filename/dsc.in.in b/t/source/fields-src-fields-filename/dsc.in.in index c256315a9..bcb4f9410 100644 --- a/t/source/fields-src-fields-filename/dsc.in.in +++ b/t/source/fields-src-fields-filename/dsc.in.in @@ -6,6 +6,7 @@ Version: 1 Maintainer: Debian Lintian Maintainers <[email protected]> Standards-Version: {$standards_version} Build-Depends: debhelper (>= 7) +Testsuite: autopkgtest Checksums-Sha1: @SHA1@ @SIZE@ some-other-name_1.tar.gz Checksums-Sha256: diff --git a/t/source/magic-architecture-srcpkg-ok/Makefile b/t/source/magic-architecture-srcpkg-ok/Makefile index 90330cdaa..a04ec3ff3 100644 --- a/t/source/magic-architecture-srcpkg-ok/Makefile +++ b/t/source/magic-architecture-srcpkg-ok/Makefile @@ -7,6 +7,7 @@ all: tar -c -f $(name)_1.0.orig.tar.gz -z $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat echo '# foo' > $(dir)/debian/watch mkdir $(dir)/debian/source diff --git a/t/source/magic-architecture-srcpkg-wrong/Makefile b/t/source/magic-architecture-srcpkg-wrong/Makefile index d680a0c56..93f3a4c84 100644 --- a/t/source/magic-architecture-srcpkg-wrong/Makefile +++ b/t/source/magic-architecture-srcpkg-wrong/Makefile @@ -7,6 +7,7 @@ all: tar -c -f $(name)_1.0.orig.tar.gz -z $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat echo '# foo' > $(dir)/debian/watch mkdir $(dir)/debian/source diff --git a/t/source/no-sha256-checksum/Makefile b/t/source/no-sha256-checksum/Makefile index 4e6543b59..bb8c912bf 100644 --- a/t/source/no-sha256-checksum/Makefile +++ b/t/source/no-sha256-checksum/Makefile @@ -4,6 +4,7 @@ dir = $(name)-1 all: mkdir -p $(dir)/debian/source cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo 9 > $(dir)/debian/compat echo "3.0 (native)" > $(dir)/debian/source/format tar cfz $(name)_1.tar.gz $(dir) diff --git a/t/source/no-sha256-checksum/dsc.in.in b/t/source/no-sha256-checksum/dsc.in.in index e169c45e8..ed0edadc0 100644 --- a/t/source/no-sha256-checksum/dsc.in.in +++ b/t/source/no-sha256-checksum/dsc.in.in @@ -6,6 +6,7 @@ Version: 1 Maintainer: Debian Lintian Maintainers <[email protected]> Standards-Version: {$standards_version} Build-Depends: debhelper (>= 9) +Testsuite: autopkgtest Checksums-Sha1: @SHA1@ @SIZE@ no-sha256-checksum_1.tar.gz Files: diff --git a/t/source/package-version-0/Makefile b/t/source/package-version-0/Makefile index f909603dd..fa70616a6 100644 --- a/t/source/package-version-0/Makefile +++ b/t/source/package-version-0/Makefile @@ -5,6 +5,7 @@ all: mkdir $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat mkdir $(dir)/debian/source echo 1.0 > $(dir)/debian/source/format diff --git a/t/source/testsuite-inconsistent-field/Makefile b/t/source/testsuite-inconsistent-field/Makefile index 17e2ca9de..005058f3e 100644 --- a/t/source/testsuite-inconsistent-field/Makefile +++ b/t/source/testsuite-inconsistent-field/Makefile @@ -5,12 +5,10 @@ all: mkdir $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat mkdir $(dir)/debian/source echo 1.0 > $(dir)/debian/source/format - mkdir $(dir)/debian/tests - echo 'Tests: test.sh' > $(dir)/debian/tests/control - echo '#!/bin/sh' > $(dir)/debian/tests/test.sh dpkg-source -sn -b $(dir) sed -i '/^Testsuite: /d' *.dsc diff --git a/t/source/testsuite-inconsistent-field/tags b/t/source/testsuite-inconsistent-field/tags index e9d98ef58..7104ab2b7 100644 --- a/t/source/testsuite-inconsistent-field/tags +++ b/t/source/testsuite-inconsistent-field/tags @@ -1 +1,2 @@ I: testsuite-inconsistent-field source: inconsistent-testsuite-field +I: testsuite-inconsistent-field source: testsuite-autopkgtest-missing diff --git a/t/source/unpack-srcpkg-dot-dir/Makefile b/t/source/unpack-srcpkg-dot-dir/Makefile index a7b81b202..87fdeae4b 100644 --- a/t/source/unpack-srcpkg-dot-dir/Makefile +++ b/t/source/unpack-srcpkg-dot-dir/Makefile @@ -9,6 +9,7 @@ all: mkdir -p $(dir)/debian cp README foo.c foo.h $(dir) cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat echo > $(dir)/debian/watch mkdir $(dir)/debian/source diff --git a/t/source/unpack-srcpkg-dot-subdir/Makefile b/t/source/unpack-srcpkg-dot-subdir/Makefile index ccbef43ee..01d2f6e9b 100644 --- a/t/source/unpack-srcpkg-dot-subdir/Makefile +++ b/t/source/unpack-srcpkg-dot-subdir/Makefile @@ -8,6 +8,7 @@ all: tar -c -z -f $(name)_1.0.orig.tar.gz ./$(name) mkdir -p $(name)/debian cp changelog copyright control rules $(name)/debian/ + cp -R tests/ $(name)/debian/ echo $(DEFAULT_DH_COMPAT) > $(name)/debian/compat echo > $(name)/debian/watch mkdir $(name)/debian/source diff --git a/t/source/unpack-srcpkg-no-subdir/Makefile b/t/source/unpack-srcpkg-no-subdir/Makefile index c8da8dde3..02e044b8e 100644 --- a/t/source/unpack-srcpkg-no-subdir/Makefile +++ b/t/source/unpack-srcpkg-no-subdir/Makefile @@ -9,6 +9,7 @@ all: mkdir -p $(dir)/debian cp README foo.c foo.h $(dir) cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat echo > $(dir)/debian/watch mkdir $(dir)/debian/source diff --git a/t/source/unpack-srcpkg-xz/Makefile b/t/source/unpack-srcpkg-xz/Makefile index f11b81982..b69b1a4dd 100644 --- a/t/source/unpack-srcpkg-xz/Makefile +++ b/t/source/unpack-srcpkg-xz/Makefile @@ -7,6 +7,7 @@ all: tar -c -f $(name)_1.0.orig.tar.xz --xz $(dir) mkdir $(dir)/debian cp changelog copyright control rules $(dir)/debian/ + cp -R tests/ $(dir)/debian/ echo $(DEFAULT_DH_COMPAT) > $(dir)/debian/compat touch $(dir)/debian/watch mkdir $(dir)/debian/source diff --git a/t/templates/source/skel/tests/control b/t/templates/source/skel/tests/control new file mode 100644 index 000000000..b8562954d --- /dev/null +++ b/t/templates/source/skel/tests/control @@ -0,0 +1 @@ +Tests: test diff --git a/t/templates/source/skel/tests/test b/t/templates/source/skel/tests/test new file mode 100755 index 000000000..039e4d006 --- /dev/null +++ b/t/templates/source/skel/tests/test @@ -0,0 +1,2 @@ +#!/bin/sh +exit 0 -- 2.11.0
>From b0455eb89bef1a2b5a0ef421ca02b834c0b0e229 Mon Sep 17 00:00:00 2001 From: Lucas Kanashiro <[email protected]> Date: Mon, 3 Apr 2017 17:18:11 -0300 Subject: [PATCH 1/3] check if source package contains functional testsuite --- checks/testsuite.desc | 18 ++++++++++++++++++ checks/testsuite.pm | 2 ++ .../debian/debian/control.in | 15 +++++++++++++++ t/tests/testsuite-autopkgtest-missing/desc | 5 +++++ t/tests/testsuite-autopkgtest-missing/pre_build | 2 ++ t/tests/testsuite-autopkgtest-missing/tags | 1 + 6 files changed, 43 insertions(+) create mode 100644 t/tests/testsuite-autopkgtest-missing/debian/debian/control.in create mode 100644 t/tests/testsuite-autopkgtest-missing/desc create mode 100755 t/tests/testsuite-autopkgtest-missing/pre_build create mode 100644 t/tests/testsuite-autopkgtest-missing/tags diff --git a/checks/testsuite.desc b/checks/testsuite.desc index 4a5327839..febc25083 100644 --- a/checks/testsuite.desc +++ b/checks/testsuite.desc @@ -128,3 +128,21 @@ Info: Lintian cannot parse the Depends field for the given autopkgtest. If Lintian complains about a new special "@"-dependency, please file a bug against Lintian and have it added to the whitelist. Ref: https://anonscm.debian.org/git/autopkgtest/autopkgtest.git/tree/doc/README.package-tests.rst + +Tag: testsuite-autopkgtest-missing +Severity: wishlist +Certainty: certain +Info: This package does not declare a test suite. Having a test suite helps with + automated QA in response to changes in the archive. For example, if your + package has a test suite, it is possible to re-execute that test suite when + any of the package dependencies has a new version and check whether that + update caused problems for your package. + . + To declare a test suite in your package, you need to add a `Testsuite` field to + the source part of debian/control. This field will usually have a value of + `autopkgtest`, i.e.: + . + Testsuite: autopkgtest + . + For more information on how to add functional tests to your package, browse to + https://ci.debian.net/doc/. diff --git a/checks/testsuite.pm b/checks/testsuite.pm index 3839c39f0..60495da0a 100644 --- a/checks/testsuite.pm +++ b/checks/testsuite.pm @@ -78,6 +78,8 @@ sub run { my $control = $info->index('debian/tests/control'); my $needs_control = 0; + tag 'testsuite-autopkgtest-missing' if ($testsuites !~ /autopkgtest/); + for my $testsuite (split(m/\s*,\s*/o, $testsuites)) { if (not exists($KNOWN_TESTSUITES{$testsuite})) { tag 'unknown-testsuite', $testsuite; diff --git a/t/tests/testsuite-autopkgtest-missing/debian/debian/control.in b/t/tests/testsuite-autopkgtest-missing/debian/debian/control.in new file mode 100644 index 000000000..842d74276 --- /dev/null +++ b/t/tests/testsuite-autopkgtest-missing/debian/debian/control.in @@ -0,0 +1,15 @@ +Source: {$source} +Priority: extra +Section: devel +Maintainer: {$author} +Standards-Version: {$standards_version} +Build-Depends: {$build_depends} + +Package: {$source} +Architecture: all +Depends: $\{shlibs:Depends\}, $\{misc:Depends\} +Description: {$description} + This is a test package designed to exercise some feature or tag of + Lintian. It is part of the Lintian test suite and may do very odd + things. It should not be installed like a regular package. It may + be an empty package. diff --git a/t/tests/testsuite-autopkgtest-missing/desc b/t/tests/testsuite-autopkgtest-missing/desc new file mode 100644 index 000000000..ec5862e95 --- /dev/null +++ b/t/tests/testsuite-autopkgtest-missing/desc @@ -0,0 +1,5 @@ +Testname: testsuite-autopkgtest-missing +Version: 1.0 +Description: Verify if Testsuite field and autopkgtest are used +Test-For: + testsuite-autopkgtest-missing diff --git a/t/tests/testsuite-autopkgtest-missing/pre_build b/t/tests/testsuite-autopkgtest-missing/pre_build new file mode 100755 index 000000000..5d971921c --- /dev/null +++ b/t/tests/testsuite-autopkgtest-missing/pre_build @@ -0,0 +1,2 @@ +#!/bin/bash +rm -f "$1/debian/tests/control" diff --git a/t/tests/testsuite-autopkgtest-missing/tags b/t/tests/testsuite-autopkgtest-missing/tags new file mode 100644 index 000000000..cb51a6662 --- /dev/null +++ b/t/tests/testsuite-autopkgtest-missing/tags @@ -0,0 +1 @@ +I: testsuite-autopkgtest-missing source: testsuite-autopkgtest-missing -- 2.11.0

