From 90169463f86997737ed5b9c0ea2b311cd3b056b7 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 9 Apr 2024 14:53:53 +0200 Subject: Adding upstream version 13.15.3. Signed-off-by: Daniel Baumann --- t/dh_missing/01-no-missing.t | 28 ++++++++++++++++++++++++ t/dh_missing/02-fail-on-missing.t | 33 ++++++++++++++++++++++++++++ t/dh_missing/03-dh_install-redirection.t | 30 ++++++++++++++++++++++++++ t/dh_missing/04-not-installed-glob.t | 37 ++++++++++++++++++++++++++++++++ t/dh_missing/template/Makefile | 7 ++++++ t/dh_missing/template/debian/changelog | 5 +++++ t/dh_missing/template/debian/control | 21 ++++++++++++++++++ t/dh_missing/template/debian/foo.install | 1 + t/dh_missing/template/file-for-foo | 1 + 9 files changed, 163 insertions(+) create mode 100755 t/dh_missing/01-no-missing.t create mode 100755 t/dh_missing/02-fail-on-missing.t create mode 100755 t/dh_missing/03-dh_install-redirection.t create mode 100755 t/dh_missing/04-not-installed-glob.t create mode 100644 t/dh_missing/template/Makefile create mode 100644 t/dh_missing/template/debian/changelog create mode 100644 t/dh_missing/template/debian/control create mode 100644 t/dh_missing/template/debian/foo.install create mode 100644 t/dh_missing/template/file-for-foo (limited to 't/dh_missing') diff --git a/t/dh_missing/01-no-missing.t b/t/dh_missing/01-no-missing.t new file mode 100755 index 0000000..e3cd311 --- /dev/null +++ b/t/dh_missing/01-no-missing.t @@ -0,0 +1,28 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Test::More; + +use File::Basename qw(dirname); +use lib dirname(dirname(__FILE__)); +use Test::DH; + +our $TEST_DH_FIXTURE_DIR = 'template'; +our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw( + debian/changelog + debian/control + debian/foo.install + file-for-foo + Makefile +)); + +plan(tests => 1); + +each_compat_subtest { + # Verify dh_missing does not fail when all files are installed. + ok(run_dh_tool('dh_clean')); + is(system('make', 'install'), 0); + ok(run_dh_tool('dh_install', '--sourcedir', 'debian/tmp')); + ok(run_dh_tool('dh_missing', '--fail-missing'), 'dh_missing failed'); +}; + diff --git a/t/dh_missing/02-fail-on-missing.t b/t/dh_missing/02-fail-on-missing.t new file mode 100755 index 0000000..e97b6eb --- /dev/null +++ b/t/dh_missing/02-fail-on-missing.t @@ -0,0 +1,33 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Test::More; + +use File::Basename qw(dirname); +use lib dirname(dirname(__FILE__)); +use Test::DH; + +our $TEST_DH_FIXTURE_DIR = 'template'; +our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw( + debian/changelog + debian/control + debian/foo.install + file-for-foo + Makefile +)); + +plan(tests => 1); + +each_compat_subtest { + # Verify dh_missing does fail when not all files are installed. + ok(run_dh_tool('dh_clean')); + is(system('make', 'installmore'), 0); + ok(run_dh_tool('dh_install', '--sourcedir', 'debian/tmp')); + ok(!run_dh_tool({ 'quiet' => 1 }, 'dh_missing', '--fail-missing')); + + isnt($?, -1, 'dh_missing was executed'); + ok(! ($? & 127), 'dh_missing did not die due to a signal'); + my $exitcode = ($? >> 8); + is($exitcode, 255, 'dh_missing exited with exit code 255'); +}; + diff --git a/t/dh_missing/03-dh_install-redirection.t b/t/dh_missing/03-dh_install-redirection.t new file mode 100755 index 0000000..2235b08 --- /dev/null +++ b/t/dh_missing/03-dh_install-redirection.t @@ -0,0 +1,30 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Test::More; + +use File::Basename qw(dirname); +use lib dirname(dirname(__FILE__)); +use Test::DH; + +our $TEST_DH_FIXTURE_DIR = 'template'; +our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw( + debian/changelog + debian/control + debian/foo.install + file-for-foo + Makefile +)); + +plan(tests => 1); + +each_compat_up_to_and_incl_subtest(10, sub { + # Verify that dh_install -X --fail-missing is passed through to dh_missing (#863447) + # dh_install -Xfile makes file-for-foo not be installed. Then we shouldn't + # complain about it not being missing. + ok(run_dh_tool('dh_clean')); + is(system('make', 'install'), 0); + ok(run_dh_tool({ 'quiet' => 1 }, 'dh_install', '--sourcedir', 'debian/tmp', + '-X', 'more', '--exclude', 'lots', '--fail-missing')); +}); + diff --git a/t/dh_missing/04-not-installed-glob.t b/t/dh_missing/04-not-installed-glob.t new file mode 100755 index 0000000..b46eca3 --- /dev/null +++ b/t/dh_missing/04-not-installed-glob.t @@ -0,0 +1,37 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Test::More; + +use File::Basename qw(dirname); +use lib dirname(dirname(__FILE__)); +use Test::DH; +use Debian::Debhelper::Dh_Lib qw(!dirname); + +our $TEST_DH_FIXTURE_DIR = 'template'; +our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw( + debian/changelog + debian/control + debian/foo.install + file-for-foo + Makefile +)); + +plan(tests => 1); + +each_compat_subtest { + rm_files('debian/not-installed'); + open(my $fd, '>', 'debian/not-installed') or error("open(d/not-installed): $!"); + # Non-glob match + print {$fd} "usr/bin/file-for-foo\n"; + # Glob match (note that it must not match the above) + print {$fd} "usr/bin/file-for-foo-*\n"; + # Non-matches (silently ignored) + print {$fd} "usr/bin/does-not-exist\n"; + print {$fd} "usr/bin/does-not-exist-*\n"; + close($fd) or error("close(d/not-installed: $!"); + ok(run_dh_tool('dh_clean')); + is(system('make', 'installmore'), 0); + ok(run_dh_tool('dh_missing', '--fail-missing')); +}; + diff --git a/t/dh_missing/template/Makefile b/t/dh_missing/template/Makefile new file mode 100644 index 0000000..e33e1df --- /dev/null +++ b/t/dh_missing/template/Makefile @@ -0,0 +1,7 @@ +install: + install -m 755 -d debian/tmp/usr/bin + install -m 644 file-for-foo debian/tmp/usr/bin/file-for-foo + +installmore: install + install -m 644 file-for-foo debian/tmp/usr/bin/file-for-foo-more + install -m 644 file-for-foo debian/tmp/usr/bin/file-for-foo-lots diff --git a/t/dh_missing/template/debian/changelog b/t/dh_missing/template/debian/changelog new file mode 100644 index 0000000..5850f0e --- /dev/null +++ b/t/dh_missing/template/debian/changelog @@ -0,0 +1,5 @@ +foo (1.0-1) unstable; urgency=low + + * Initial release. (Closes: #XXXXXX) + + -- Test Mon, 11 Jul 2016 18:10:59 +0200 diff --git a/t/dh_missing/template/debian/control b/t/dh_missing/template/debian/control new file mode 100644 index 0000000..edb7da5 --- /dev/null +++ b/t/dh_missing/template/debian/control @@ -0,0 +1,21 @@ +Source: foo +Section: misc +Priority: optional +Maintainer: Test +Standards-Version: 3.9.8 +X-DH-Compat: @DH_COMPAT_LEVEL@ + +Package: foo +Architecture: all +Description: package foo + Package foo + +Package: bar +Architecture: all +Description: package bar + Package bar + +Package: baz +Architecture: all +Description: package baz + Package baz diff --git a/t/dh_missing/template/debian/foo.install b/t/dh_missing/template/debian/foo.install new file mode 100644 index 0000000..eddea57 --- /dev/null +++ b/t/dh_missing/template/debian/foo.install @@ -0,0 +1 @@ +usr/bin/*-for-foo \ No newline at end of file diff --git a/t/dh_missing/template/file-for-foo b/t/dh_missing/template/file-for-foo new file mode 100644 index 0000000..8773f39 --- /dev/null +++ b/t/dh_missing/template/file-for-foo @@ -0,0 +1 @@ +file content \ No newline at end of file -- cgit v1.2.3