From d827c6cf1631209f5042a9d1d8a7ecc24223c8a0 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 23:06:40 +0200 Subject: Adding upstream version 13.11.4. Signed-off-by: Daniel Baumann --- t/dh_install/01-basics.t | 33 +++++++++++++ t/dh_install/02-bugs-53XXXX.t | 65 +++++++++++++++++++++++++ t/dh_install/03-866570-dont-install-from-host.t | 24 +++++++++ t/dh_install/04-sourcedir.t | 47 ++++++++++++++++++ 4 files changed, 169 insertions(+) create mode 100755 t/dh_install/01-basics.t create mode 100755 t/dh_install/02-bugs-53XXXX.t create mode 100755 t/dh_install/03-866570-dont-install-from-host.t create mode 100755 t/dh_install/04-sourcedir.t (limited to 't/dh_install') diff --git a/t/dh_install/01-basics.t b/t/dh_install/01-basics.t new file mode 100755 index 0000000..b266196 --- /dev/null +++ b/t/dh_install/01-basics.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; +use File::Path qw(remove_tree make_path); +use Debian::Debhelper::Dh_Lib qw(!dirname); + +plan(tests => 2); + + +each_compat_subtest { + my ($compat) = @_; + # regular specification of file not in debian/tmp + create_empty_file('dh_install'); + ok(run_dh_tool('dh_install', 'dh_install', 'usr/bin')); + ok(-e "debian/debhelper/usr/bin/dh_install"); + remove_tree('debian/debhelper', 'debian/tmp'); +}; + +each_compat_subtest { + my ($compat) = @_; + # specification of file in subdir, not in debian/tmp + make_path('bar/usr/bin'); + create_empty_file('bar/usr/bin/foo'); + ok(run_dh_tool('dh_install', 'bar/usr/bin/foo')); + ok(-e "debian/debhelper/bar/usr/bin/foo"); + remove_tree('debian/debhelper', 'debian/tmp'); +}; + diff --git a/t/dh_install/02-bugs-53XXXX.t b/t/dh_install/02-bugs-53XXXX.t new file mode 100755 index 0000000..1c42489 --- /dev/null +++ b/t/dh_install/02-bugs-53XXXX.t @@ -0,0 +1,65 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Test::More; + +use File::Basename qw(dirname); +use lib dirname(dirname(__FILE__)); +use Test::DH; +use File::Path qw(remove_tree make_path); +use Debian::Debhelper::Dh_Lib qw(!dirname); + +plan(tests => 4); + +each_compat_from_and_above_subtest(7, sub { + my ($compat) = @_; + # #537140: debian/tmp is explcitly specified despite being searched by + # default in v7+ + + make_path('debian/tmp/usr/bin'); + create_empty_file('debian/tmp/usr/bin/foo'); + create_empty_file('debian/tmp/usr/bin/bar'); + ok(run_dh_tool('dh_install', 'debian/tmp/usr/bin/foo')); + ok(-e "debian/debhelper/usr/bin/foo", "#537140 [${compat}]"); + ok(! -e "debian/debhelper/usr/bin/bar", "#537140 [${compat}]"); + remove_tree('debian/debhelper', 'debian/tmp'); +}); + +each_compat_from_and_above_subtest(7, sub { + my ($compat) = @_; + # #534565: glob expands to dangling symlink -> should install the dangling link + make_path('debian/tmp/usr/bin'); + make_symlink_raw_target('broken', 'debian/tmp/usr/bin/foo'); + create_empty_file('debian/tmp/usr/bin/bar'); + ok(run_dh_tool('dh_install', 'usr/bin/*')); + ok(-l "debian/debhelper/usr/bin/foo", "#534565 [${compat}]"); + ok(!-e "debian/debhelper/usr/bin/foo", "#534565 [${compat}]"); + ok(-e "debian/debhelper/usr/bin/bar", "#534565 [${compat}]"); + ok(!-l "debian/debhelper/usr/bin/bar", "#534565 [${compat}]"); + remove_tree('debian/debhelper', 'debian/tmp'); +}); + +each_compat_subtest { + my ($compat) = @_; + # #537017: --sourcedir=debian/tmp/foo is used + make_path('debian/tmp/foo/usr/bin'); + create_empty_file('debian/tmp/foo/usr/bin/foo'); + create_empty_file('debian/tmp/foo/usr/bin/bar'); + ok(run_dh_tool('dh_install', '--sourcedir=debian/tmp/foo', 'usr/bin/bar')); + ok(-e "debian/debhelper/usr/bin/bar", "#537017 [${compat}]"); + ok(!-e "debian/debhelper/usr/bin/foo", "#537017 [${compat}]"); + remove_tree('debian/debhelper', 'debian/tmp'); +}; + +each_compat_from_and_above_subtest(7, sub { + my ($compat) = @_; + # #535367: installation of entire top-level directory from debian/tmp + make_path('debian/tmp/usr/bin'); + create_empty_file('debian/tmp/usr/bin/foo'); + create_empty_file('debian/tmp/usr/bin/bar'); + ok(run_dh_tool('dh_install', 'usr')); + ok(-e "debian/debhelper/usr/bin/foo", "#535367 [${compat}]"); + ok(-e "debian/debhelper/usr/bin/bar", "#535367 [${compat}]"); + remove_tree('debian/debhelper', 'debian/tmp'); +}); + diff --git a/t/dh_install/03-866570-dont-install-from-host.t b/t/dh_install/03-866570-dont-install-from-host.t new file mode 100755 index 0000000..92345d1 --- /dev/null +++ b/t/dh_install/03-866570-dont-install-from-host.t @@ -0,0 +1,24 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Test::More; + +use File::Basename qw(dirname); +use lib dirname(dirname(__FILE__)); +use Test::DH; +use File::Path qw(remove_tree make_path); +use Debian::Debhelper::Dh_Lib qw(!dirname); + +plan(tests => 1); + +each_compat_subtest { + my ($compat) = @_; + # #866570 - leading slashes must *not* pull things from the root FS. + make_path('bin'); + create_empty_file('bin/grep-i-licious'); + ok(run_dh_tool('dh_install', '/bin/grep*')); + ok(-e "debian/debhelper/bin/grep-i-licious", "#866570 [${compat}]"); + ok(!-e "debian/debhelper/bin/grep", "#866570 [${compat}]"); + remove_tree('debian/debhelper', 'debian/tmp'); +}; + diff --git a/t/dh_install/04-sourcedir.t b/t/dh_install/04-sourcedir.t new file mode 100755 index 0000000..83bd006 --- /dev/null +++ b/t/dh_install/04-sourcedir.t @@ -0,0 +1,47 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Test::More; + +use File::Basename qw(dirname); +use lib dirname(dirname(__FILE__)); +use Test::DH; +use File::Path qw(remove_tree make_path); +use Debian::Debhelper::Dh_Lib qw(!dirname); + +plan(tests => 3); + + +each_compat_subtest { + my ($compat) = @_; + # redundant --sourcedir=debian/tmp in v7+ + make_path('debian/tmp/usr/bin'); + create_empty_file('debian/tmp/usr/bin/foo'); + create_empty_file('debian/tmp/usr/bin/bar'); + ok(run_dh_tool('dh_install', '--sourcedir=debian/tmp', 'usr/bin/foo')); + ok(-e "debian/debhelper/usr/bin/foo"); + ok(! -e "debian/debhelper/usr/bin/bar"); + remove_tree('debian/debhelper', 'debian/tmp'); +}; + +each_compat_subtest { + my ($compat) = @_; + # #534565: fallback use of debian/tmp in v7+ + make_path('debian/tmp/usr/bin'); + create_empty_file('debian/tmp/usr/bin/foo'); + create_empty_file('debian/tmp/usr/bin/bar'); + ok(run_dh_tool('dh_install', 'usr')); + ok(-e "debian/debhelper/usr/bin/foo", "#534565 [${compat}]"); + ok(-e "debian/debhelper/usr/bin/bar", "#534565 [${compat}]"); + remove_tree('debian/debhelper', 'debian/tmp'); +}; + +each_compat_subtest { + my ($compat) = @_; + # specification of file in source directory not in debian/tmp + make_path('bar/usr/bin'); + create_empty_file('bar/usr/bin/foo'); + ok(run_dh_tool('dh_install', '--sourcedir=bar', 'usr/bin/foo')); + ok(-e "debian/debhelper/usr/bin/foo"); + remove_tree('debian/debhelper', 'debian/tmp'); +}; -- cgit v1.2.3