[devscripts] 01/03: Added test for life cycle of package
Nicholas Bamber
periapt at moszumanska.debian.org
Sat Dec 5 12:40:27 UTC 2015
This is an automated email from the git hooks/post-receive script.
periapt pushed a commit to branch master
in repository devscripts.
commit fd914851acaa716042b4219219e753f9be03319b
Author: Nicholas Bamber <nicholas at periapt.co.uk>
Date: Fri Dec 4 20:14:43 2015 +0000
Added test for life cycle of package
---
debian/changelog | 1 +
test/Makefile | 2 +
test/test_package_lifecycle | 274 ++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 277 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 1dc53c0..2098b22 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -29,6 +29,7 @@ devscripts (2.15.10) UNRELEASED; urgency=medium
+ Added test for licensecheck versus Software::License
+ Resolved failure to find license from Software::License generated
files from Artistic and Mozilla licenses
+ * Added test for life cycle of package
[ Dominique Dumont ]
* licensecheck:
diff --git a/test/Makefile b/test/Makefile
index 7746eec..342fe32 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -9,6 +9,7 @@ test:
./test_checkbashisms
./test_dd-list
./test_debchange
+ ./test_package_lifecycle
./test_debdiff
./test_licensecheck
if [ $(check_unstable) = 0 ]; then \
@@ -24,6 +25,7 @@ test-installed:
./test_checkbashisms --installed
./test_dd-list --installed
./test_debchange --installed
+ ./test_package_lifecycle --installed
./test_debdiff --installed
./test_licensecheck --installed
if [ $(check_unstable) = 0 ]; then \
diff --git a/test/test_package_lifecycle b/test/test_package_lifecycle
new file mode 100755
index 0000000..842e565
--- /dev/null
+++ b/test/test_package_lifecycle
@@ -0,0 +1,274 @@
+#!/bin/bash
+
+# Copyright (C) 2015, Nicholas Bamber <nicholas at periapt.co.uk>
+#
+# 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 <http://www.gnu.org/licenses/>.
+
+if test "$1" = --installed; then
+ INSTALLED=1
+ shift
+else
+ INSTALLED=0
+fi
+
+WORKDIR=$(readlink -f "${0%/*}")
+
+GPG=/usr/bin/gpg
+if [ ! -x $GPG ];then
+ echo "$GPG missing"
+ GPG=/usr/bin/gpg2
+ if [ ! -x $GPG ];then
+ echo "$GPG missing"
+ exit 1
+ fi
+fi
+
+PRIVATE_KEY=${WORKDIR}/uscan/PRIVATE_KEY.asc
+PUBLIC_KEY=${WORKDIR}/uscan/PUBLIC_KEY.asc
+
+GPGHOME=$(readlink -f ${WORKDIR}/uscan/gpg)
+rm -rf $GPGHOME
+mkdir -p $GPGHOME
+chmod 700 $GPGHOME
+PRIVATE_KEYRING=$GPGHOME/secring.gpg
+PUBLIC_KEYRING=$GPGHOME/pubring.gpg
+
+$GPG -v --homedir $GPGHOME --no-options -q --batch --no-default-keyring \
+ --output $PRIVATE_KEYRING --dearmor $PRIVATE_KEY
+
+$GPG -v --homedir $GPGHOME --no-options -q --batch --no-default-keyring \
+ --output $PUBLIC_KEYRING --dearmor $PUBLIC_KEY
+
+$GPG --homedir $GPGHOME --no-options -q --batch --no-default-keyring \
+ --secret-keyring $PRIVATE_KEYRING --default-key 72543FAF \
+ --list-keys --verbose
+
+. "${0%/*}/shunit2-helper-functions.sh"
+
+mkdir -p ${WORKDIR}/package_lifecycle/test/debian/source
+cat > ${WORKDIR}/package_lifecycle/test/debian/control <<-EOS
+ Source: test
+ Section: devel
+ Priority: optional
+ Maintainer: Devscripts Devel Team <devscripts-devel at lists.alioth.debian.org>
+ Uploaders: Testophilus Testownik <tester at testity.org>
+ Standards-Version: 3.9.6
+
+ Package: test
+ Architecture: all
+ Description: Short description
+ Longer description
+EOS
+cp /usr/share/doc/debhelper/examples/rules.tiny ${WORKDIR}/package_lifecycle/test/debian/rules
+_DATE=$(LC_ALL=C date '+%a, %d %b %Y %T +0000')
+cat > ${WORKDIR}/package_lifecycle/test/debian/changelog <<-EOS
+ test (1.0-1) unstable; urgency=low
+
+ * Initial packaging
+
+ -- Testophilus Testownik <tester at testity.org> ${_DATE}
+EOS
+echo 9 > ${WORKDIR}/package_lifecycle/test/debian/compat
+echo '3.0 (quilt)' > ${WORKDIR}/package_lifecycle/test/debian/source/format
+touch ${WORKDIR}/package_lifecycle/test/CONTENTS
+cd ${WORKDIR}/package_lifecycle/ && tar cvf test_1.0.orig.tar --exclude debian -- test/CONTENTS 2>&1 > /dev/null && xz -f test_1.0.orig.tar
+
+runCommandOutCmpFile() {
+ local param="$1"
+ local exp_stdoutfile="$2"
+ local exp_stderr="$3"
+ local exp_retval=$4
+ local stdoutF="${SHUNIT_TMPDIR}/stdout"
+ local stderrF="${SHUNIT_TMPDIR}/stderr"
+ eval "${COMMAND} $param" 2> ${stderrF} | sed -e's!^ -- Testophilus Testownik <tester at testity.org>.*! -- Testophilus Testownik <tester at testity.org>!' > ${stdoutF}
+ retval=$?
+ eval "cmp ${stdoutF} ${exp_stdoutfile}" 3>&1 >/dev/null
+ local diffretval=$?
+ assertEquals "standard output of ${COMMAND} $param matches ${exp_stdoutfile}\n" "0" "$diffretval" || diff ${stdoutF} ${exp_stdoutfile}
+ assertEquals "error output of ${COMMAND} $param\n" "$exp_stderr" "$(cat ${stderrF})"
+ assertEquals "return value of ${COMMAND} $param\n" $exp_retval $retval
+}
+
+
+test_debuild() {
+ export GNUPGHOME=$GPGHOME
+ cd ${WORKDIR}/package_lifecycle/test
+ if [[ $INSTALLED == "1" ]]; then
+ COMMAND='debuild --no-conf'
+ else
+ COMMAND="perl -I ${WORKDIR}/../lib ${WORKDIR}/../scripts/debuild.pl --no-conf"
+ fi
+ local _ARCH=$(dpkg-architecture -qDEB_BUILD_ARCH)
+ cat > ${WORKDIR}/package_lifecycle/debuild.txt <<-EOS
+ dpkg-buildpackage -rfakeroot -D -us -uc
+ dpkg-buildpackage: source package test
+ dpkg-buildpackage: source version 1.0-1
+ dpkg-buildpackage: source distribution unstable
+ dpkg-buildpackage: source changed by Testophilus Testownik <tester at testity.org>
+ dpkg-source --before-build test
+ dpkg-buildpackage: host architecture amd64
+ fakeroot debian/rules clean
+ dh clean
+ dh_testdir
+ dh_auto_clean
+ dh_clean
+ dpkg-source -b test
+ dpkg-source: info: using source format '3.0 (quilt)'
+ dpkg-source: info: building test using existing ./test_1.0.orig.tar.xz
+ dpkg-source: info: building test in test_1.0-1.debian.tar.xz
+ dpkg-source: info: building test in test_1.0-1.dsc
+ debian/rules build
+ dh build
+ dh_testdir
+ dh_auto_configure
+ dh_auto_build
+ dh_auto_test
+ fakeroot debian/rules binary
+ dh binary
+ dh_testroot
+ dh_prep
+ dh_auto_install
+ dh_installdocs
+ dh_installchangelogs
+ dh_perl
+ dh_link
+ dh_strip_nondeterminism
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+ dpkg-deb: building package 'test' in '../test_1.0-1_all.deb'.
+ dpkg-genchanges >../test_1.0-1_${_ARCH}.changes
+ dpkg-genchanges: including full source code in upload
+ dpkg-source --after-build test
+ dpkg-buildpackage: full upload (original source is included)
+ Now running lintian...
+ W: test source: debhelper-but-no-misc-depends test
+ E: test source: package-uses-debhelper-but-lacks-build-depends
+ W: test source: package-needs-versioned-debhelper-build-depends 9
+ W: test source: no-debian-copyright
+ I: test source: debian-watch-file-is-missing
+ P: test: no-upstream-changelog
+ W: test: new-package-should-close-itp-bug
+ E: test: no-copyright-file
+ I: test: extended-description-is-probably-too-short
+ P: test: no-homepage-field
+ W: test: empty-binary-package
+ Finished running lintian.
+ Now signing changes and any dsc files...
+ signfile test_1.0-1.dsc uscan test key (no secret) <none at debian.org>
+
+ signfile test_1.0-1_amd64.changes uscan test key (no secret) <none at debian.org>
+
+ Successfully signed dsc and changes files
+EOS
+ runCommandOutCmpFile "-k'uscan test key (no secret) <none at debian.org>'" "${WORKDIR}/package_lifecycle/debuild.txt" "" 0
+ cd ${WORKDIR}
+}
+
+test_dscverify () {
+ cd ${WORKDIR}/package_lifecycle
+ if [[ $INSTALLED == "1" ]]; then
+ COMMAND='dscverify --no-conf --keyring $GPGHOME/pubring.gpg'
+ else
+ COMMAND="perl -I ${WORKDIR}/../lib ${WORKDIR}/../scripts/dscverify.pl --no-conf --keyring $GPGHOME/pubring.gpg"
+ fi
+ cat > ${WORKDIR}/package_lifecycle/dscverify.txt <<-EOS
+ ${WORKDIR}/package_lifecycle/test_1.0-1.dsc:
+ Good signature found
+ validating test_1.0.orig.tar.xz
+ validating test_1.0-1.debian.tar.xz
+ All files validated successfully.
+EOS
+ runCommandOutCmpFile "${WORKDIR}/package_lifecycle/test_1.0-1.dsc" "${WORKDIR}/package_lifecycle/dscverify.txt" "" 0
+ cd ${WORKDIR}
+}
+
+test_dscextractControl () {
+ cd ${WORKDIR}/package_lifecycle
+ if [[ $INSTALLED == "1" ]]; then
+ COMMAND='dscextract'
+ else
+ COMMAND="${WORKDIR}/../scripts/dscextract.sh"
+ fi
+ cat > ${WORKDIR}/package_lifecycle/dscextractControl.txt <<-EOS
+ Source: test
+ Section: devel
+ Priority: optional
+ Maintainer: Devscripts Devel Team <devscripts-devel at lists.alioth.debian.org>
+ Uploaders: Testophilus Testownik <tester at testity.org>
+ Standards-Version: 3.9.6
+
+ Package: test
+ Architecture: all
+ Description: Short description
+ Longer description
+EOS
+ runCommandOutCmpFile "test_1.0-1.dsc debian/control" "dscextractControl.txt" "" 0
+ cd ${WORKDIR}
+}
+
+test_dscextractChangelog () {
+ cd ${WORKDIR}/package_lifecycle
+ if [[ $INSTALLED == "1" ]]; then
+ COMMAND='dscextract'
+ else
+ COMMAND="${WORKDIR}/../scripts/dscextract.sh"
+ fi
+ cat > ${WORKDIR}/package_lifecycle/dscextractChangelog.txt <<-EOS
+ test (1.0-1) unstable; urgency=low
+
+ * Initial packaging
+
+ -- Testophilus Testownik <tester at testity.org>
+EOS
+ runCommandOutCmpFile "test_1.0-1.dsc debian/changelog" "dscextractChangelog.txt" "" 0
+ cd ${WORKDIR}
+}
+
+test_debchange () {
+ cd ${WORKDIR}/package_lifecycle/test
+ if [[ $INSTALLED == "1" ]]; then
+ COMMAND='debchange'
+ else
+ COMMAND="perl -I ${WORKDIR}/../lib ${WORKDIR}/../scripts/debchange.pl"
+ fi
+ export DEBFULLNAME='Testophilus Testownik'
+ export DEBEMAIL='tester at testity.org'
+ cat > ${WORKDIR}/package_lifecycle/debchange.txt <<-EOS
+ test (1.0-2) UNRELEASED; urgency=medium
+
+ * new killer app functionality
+
+ -- Testophilus Testownik <tester at testity.org>
+
+ test (1.0-1) unstable; urgency=low
+
+ * Initial packaging
+
+ -- Testophilus Testownik <tester at testity.org>
+EOS
+ runCommand "-i 'new killer app functionality'" "" "" 0
+ COMMAND=cat
+ runCommandOutCmpFile "debian/changelog" "../debchange.txt" "" 0
+ cd ${WORKDIR}
+}
+
+
+cd ${WORKDIR}
+. shunit2
+
+#rm -rf ${WORKDIR}/package_lifecycle
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/devscripts.git
More information about the devscripts-devel
mailing list