diff options
-rw-r--r-- | debian/.git-dpm | 4 | ||||
-rw-r--r-- | debian/.gitignore | 15 | ||||
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | debian/gbp.conf | 2 | ||||
-rw-r--r-- | debian/patches/0007-Run-tests-with-custom-verbose-log-driver.patch | 186 | ||||
-rw-r--r-- | debian/patches/series | 1 | ||||
-rw-r--r-- | scripts/global.mk | 4 | ||||
-rwxr-xr-x | scripts/test-driver-verbose | 151 |
8 files changed, 351 insertions, 18 deletions
diff --git a/debian/.git-dpm b/debian/.git-dpm index 8561a5b..11290d3 100644 --- a/debian/.git-dpm +++ b/debian/.git-dpm @@ -1,6 +1,6 @@ # see git-dpm(1) from git-dpm package -82ee55983110c5975405c017fe719e232e2ce8b9 -82ee55983110c5975405c017fe719e232e2ce8b9 +025859d8ca69d4486e03014125d232a851904b9d +025859d8ca69d4486e03014125d232a851904b9d e50542121e724e851fc5d6c68bb773f80c0bc12c e50542121e724e851fc5d6c68bb773f80c0bc12c gutenprint_5.3.1.orig.tar.xz diff --git a/debian/.gitignore b/debian/.gitignore deleted file mode 100644 index 4740e7a..0000000 --- a/debian/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -build -install -*.log -*.substvars -*.debhelper -escputil -files -gimp-gutenprint -gutenprint-doc -gutenprint-locales -libgutenprint-dev -libgutenprint-doc -libgutenprint9 -libgutenprintui2-2 -libgutenprintui2-dev diff --git a/debian/changelog b/debian/changelog index 4078f77..c4225a2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +gutenprint (5.3.1-6) unstable; urgency=medium + + * Run tests with custom verbose log driver (Closes: #868743) + + -- Didier Raboud <odyx@debian.org> Wed, 12 Dec 2018 20:28:23 +0100 + gutenprint (5.3.1-5) unstable; urgency=medium * Migrate 5.3 to unstable diff --git a/debian/gbp.conf b/debian/gbp.conf index b7a5f8f..47e7402 100644 --- a/debian/gbp.conf +++ b/debian/gbp.conf @@ -1,4 +1,4 @@ [DEFAULT] -debian-branch = debian/experimental +debian-branch = debian/master upstream-branch = upstream/latest pristine-tar = True diff --git a/debian/patches/0007-Run-tests-with-custom-verbose-log-driver.patch b/debian/patches/0007-Run-tests-with-custom-verbose-log-driver.patch new file mode 100644 index 0000000..5ee9123 --- /dev/null +++ b/debian/patches/0007-Run-tests-with-custom-verbose-log-driver.patch @@ -0,0 +1,186 @@ +From 025859d8ca69d4486e03014125d232a851904b9d Mon Sep 17 00:00:00 2001 +From: Didier Raboud <odyx@debian.org> +Date: Sun, 4 May 2014 12:34:59 +0200 +Subject: Run tests with custom verbose log driver + +This avoids timing out on slow architectures + +Closes: #868743 +--- + scripts/global.mk | 4 + + scripts/test-driver-verbose | 151 ++++++++++++++++++++++++++++++++++++ + 2 files changed, 155 insertions(+) + create mode 100755 scripts/test-driver-verbose + +diff --git a/scripts/global.mk b/scripts/global.mk +index c4054826..3c55e55d 100644 +--- a/scripts/global.mk ++++ b/scripts/global.mk +@@ -8,6 +8,10 @@ + + AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(LOCAL_CPPFLAGS) $(GNUCFLAGS) + ++# Use a verbose script to avoid timing out ++LOG_DRIVER = $(top_srcdir)/scripts/test-driver-verbose ++ ++ + LIBS = $(INTLLIBS) @LIBS@ + + # Libraries +diff --git a/scripts/test-driver-verbose b/scripts/test-driver-verbose +new file mode 100755 +index 00000000..221fa9e2 +--- /dev/null ++++ b/scripts/test-driver-verbose +@@ -0,0 +1,151 @@ ++#! /bin/sh ++# test-driver - testsuite driver script inherited from Automake's basic, but with verbose output. ++# Verbosity patch by Didier Raboud <odyx@debian.org> ++ ++scriptversion=2018-03-07.03; # UTC ++ ++# Copyright (C) 2011-2018 Free Software Foundation, Inc. ++# ++# 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, 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/>. ++ ++# As a special exception to the GNU General Public License, if you ++# distribute this file as part of a program that contains a ++# configuration script generated by Autoconf, you may include it under ++# the same distribution terms that you use for the rest of that program. ++ ++# Make unconditional expansion of undefined variables an error. This ++# helps a lot in preventing typo-related bugs. ++set -u ++ ++usage_error () ++{ ++ echo "$0: $*" >&2 ++ print_usage >&2 ++ exit 2 ++} ++ ++print_usage () ++{ ++ cat <<END ++Usage: ++ test-driver --test-name=NAME --log-file=PATH --trs-file=PATH ++ [--expect-failure={yes|no}] [--color-tests={yes|no}] ++ [--enable-hard-errors={yes|no}] [--] ++ TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS] ++The '--test-name', '--log-file' and '--trs-file' options are mandatory. ++END ++} ++ ++test_name= # Used for reporting. ++log_file= # Where to save the output of the test script. ++trs_file= # Where to save the metadata of the test run. ++expect_failure=no ++color_tests=no ++enable_hard_errors=yes ++while test $# -gt 1; do ++ arg=${1%=*} ++ val=${1#*=} ++ if [ $arg = $val ]; then ++ val=$2 ++ shift ++ fi ++ case $arg in ++ --help) print_usage; exit $?;; ++ --version) echo "test-driver $scriptversion"; exit $?;; ++ --test-name) test_name=$val;; ++ --log-file) log_file=$val;; ++ --trs-file) trs_file=$val;; ++ --color-tests) color_tests=$val;; ++ --expect-failure) expect_failure=$val;; ++ --enable-hard-errors) enable_hard_errors=$val;; ++ --) break;; ++ -*) usage_error "invalid option: '$1'";; ++ esac ++ [ $arg != $val ] && shift ++done ++ ++missing_opts= ++test x"$test_name" = x && missing_opts="$missing_opts --test-name" ++test x"$log_file" = x && missing_opts="$missing_opts --log-file" ++test x"$trs_file" = x && missing_opts="$missing_opts --trs-file" ++if test x"$missing_opts" != x; then ++ usage_error "the following mandatory options are missing:$missing_opts" ++fi ++ ++if test $# -eq 0; then ++ usage_error "missing argument" ++fi ++ ++if test $color_tests = yes; then ++ # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'. ++ red='[0;31m' # Red. ++ grn='[0;32m' # Green. ++ lgn='[1;32m' # Light green. ++ blu='[1;34m' # Blue. ++ mgn='[0;35m' # Magenta. ++ std='[m' # No color. ++else ++ red= grn= lgn= blu= mgn= std= ++fi ++ ++do_exit='rm -f $log_file $trs_file; (exit $st); exit $st' ++trap "st=129; $do_exit" 1 ++trap "st=130; $do_exit" 2 ++trap "st=141; $do_exit" 13 ++trap "st=143; $do_exit" 15 ++ ++# Test script is run here. ++# OdyX: Make it verbose by using tee ++"$@" 2>&1 | tee -a $log_file ++estatus=$? ++ ++if test $enable_hard_errors = no && test $estatus -eq 99; then ++ tweaked_estatus=1 ++else ++ tweaked_estatus=$estatus ++fi ++ ++case $tweaked_estatus:$expect_failure in ++ 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; ++ 0:*) col=$grn res=PASS recheck=no gcopy=no;; ++ 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; ++ 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; ++ *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; ++ *:*) col=$red res=FAIL recheck=yes gcopy=yes;; ++esac ++ ++# Report the test outcome and exit status in the logs, so that one can ++# know whether the test passed or failed simply by looking at the '.log' ++# file, without the need of also peaking into the corresponding '.trs' ++# file (automake bug#11814). ++echo "$res $test_name (exit status: $estatus)" >>$log_file ++ ++# Report outcome to console. ++echo "${col}${res}${std}: $test_name" ++ ++# Register the test result, and other relevant metadata. ++echo ":test-result: $res" > $trs_file ++echo ":global-test-result: $res" >> $trs_file ++echo ":recheck: $recheck" >> $trs_file ++echo ":copy-in-global-log: $gcopy" >> $trs_file ++ ++# Local Variables: ++# mode: shell-script ++# sh-indentation: 2 ++# eval: (add-hook 'before-save-hook 'time-stamp) ++# time-stamp-start: "scriptversion=" ++# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-time-zone: "UTC0" ++# time-stamp-end: "; # UTC" ++# End: diff --git a/debian/patches/series b/debian/patches/series index 5a87222..e698504 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -4,3 +4,4 @@ 0004-Need-to-increment-current_interface-as-well-as-binar.patch 0005-Also-need-to-fix-gutenprintui2_current_interface.patch 0006-Mirror-doc-developer-cleanwarnings.pl-from-upstream.patch +0007-Run-tests-with-custom-verbose-log-driver.patch diff --git a/scripts/global.mk b/scripts/global.mk index c405482..3c55e55 100644 --- a/scripts/global.mk +++ b/scripts/global.mk @@ -8,6 +8,10 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include $(LOCAL_CPPFLAGS) $(GNUCFLAGS) +# Use a verbose script to avoid timing out +LOG_DRIVER = $(top_srcdir)/scripts/test-driver-verbose + + LIBS = $(INTLLIBS) @LIBS@ # Libraries diff --git a/scripts/test-driver-verbose b/scripts/test-driver-verbose new file mode 100755 index 0000000..221fa9e --- /dev/null +++ b/scripts/test-driver-verbose @@ -0,0 +1,151 @@ +#! /bin/sh +# test-driver - testsuite driver script inherited from Automake's basic, but with verbose output. +# Verbosity patch by Didier Raboud <odyx@debian.org> + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 2011-2018 Free Software Foundation, Inc. +# +# 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, 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/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Make unconditional expansion of undefined variables an error. This +# helps a lot in preventing typo-related bugs. +set -u + +usage_error () +{ + echo "$0: $*" >&2 + print_usage >&2 + exit 2 +} + +print_usage () +{ + cat <<END +Usage: + test-driver --test-name=NAME --log-file=PATH --trs-file=PATH + [--expect-failure={yes|no}] [--color-tests={yes|no}] + [--enable-hard-errors={yes|no}] [--] + TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS] +The '--test-name', '--log-file' and '--trs-file' options are mandatory. +END +} + +test_name= # Used for reporting. +log_file= # Where to save the output of the test script. +trs_file= # Where to save the metadata of the test run. +expect_failure=no +color_tests=no +enable_hard_errors=yes +while test $# -gt 1; do + arg=${1%=*} + val=${1#*=} + if [ $arg = $val ]; then + val=$2 + shift + fi + case $arg in + --help) print_usage; exit $?;; + --version) echo "test-driver $scriptversion"; exit $?;; + --test-name) test_name=$val;; + --log-file) log_file=$val;; + --trs-file) trs_file=$val;; + --color-tests) color_tests=$val;; + --expect-failure) expect_failure=$val;; + --enable-hard-errors) enable_hard_errors=$val;; + --) break;; + -*) usage_error "invalid option: '$1'";; + esac + [ $arg != $val ] && shift +done + +missing_opts= +test x"$test_name" = x && missing_opts="$missing_opts --test-name" +test x"$log_file" = x && missing_opts="$missing_opts --log-file" +test x"$trs_file" = x && missing_opts="$missing_opts --trs-file" +if test x"$missing_opts" != x; then + usage_error "the following mandatory options are missing:$missing_opts" +fi + +if test $# -eq 0; then + usage_error "missing argument" +fi + +if test $color_tests = yes; then + # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'. + red='[0;31m' # Red. + grn='[0;32m' # Green. + lgn='[1;32m' # Light green. + blu='[1;34m' # Blue. + mgn='[0;35m' # Magenta. + std='[m' # No color. +else + red= grn= lgn= blu= mgn= std= +fi + +do_exit='rm -f $log_file $trs_file; (exit $st); exit $st' +trap "st=129; $do_exit" 1 +trap "st=130; $do_exit" 2 +trap "st=141; $do_exit" 13 +trap "st=143; $do_exit" 15 + +# Test script is run here. +# OdyX: Make it verbose by using tee +"$@" 2>&1 | tee -a $log_file +estatus=$? + +if test $enable_hard_errors = no && test $estatus -eq 99; then + tweaked_estatus=1 +else + tweaked_estatus=$estatus +fi + +case $tweaked_estatus:$expect_failure in + 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; + 0:*) col=$grn res=PASS recheck=no gcopy=no;; + 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; + 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; + *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; + *:*) col=$red res=FAIL recheck=yes gcopy=yes;; +esac + +# Report the test outcome and exit status in the logs, so that one can +# know whether the test passed or failed simply by looking at the '.log' +# file, without the need of also peaking into the corresponding '.trs' +# file (automake bug#11814). +echo "$res $test_name (exit status: $estatus)" >>$log_file + +# Report outcome to console. +echo "${col}${res}${std}: $test_name" + +# Register the test result, and other relevant metadata. +echo ":test-result: $res" > $trs_file +echo ":global-test-result: $res" >> $trs_file +echo ":recheck: $recheck" >> $trs_file +echo ":copy-in-global-log: $gcopy" >> $trs_file + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: |