[debhelper-devel] [debhelper] 11/30: dh_installinit.t: Convert to Test::DH

Niels Thykier nthykier at moszumanska.debian.org
Mon Jul 3 14:40:37 UTC 2017


This is an automated email from the git hooks/post-receive script.

nthykier pushed a commit to branch master
in repository debhelper.

commit b9ae8bb90b2fad04b45bd49aeeee2268df4f472b
Author: Niels Thykier <niels at thykier.net>
Date:   Sun Jul 2 11:39:15 2017 +0000

    dh_installinit.t: Convert to Test::DH
    
    Signed-off-by: Niels Thykier <niels at thykier.net>
---
 t/dh_installinit/dh_installinit.t | 82 ++++++++++++++++++---------------------
 1 file changed, 38 insertions(+), 44 deletions(-)

diff --git a/t/dh_installinit/dh_installinit.t b/t/dh_installinit/dh_installinit.t
index d05c207..3898c52 100755
--- a/t/dh_installinit/dh_installinit.t
+++ b/t/dh_installinit/dh_installinit.t
@@ -1,54 +1,48 @@
 #!/usr/bin/perl
 use strict;
 use Test::More;
-use File::Basename ();
 
-# Let the tests be run from anywhere, but current directory
-# is expected to be the one where this test lives in.
-chdir File::Basename::dirname($0) or die "Unable to chdir to ".File::Basename::dirname($0);
-
-my $TOPDIR = "../..";
-my $rootcmd;
-
-if ($< == 0) {
-	$rootcmd = '';
-}
-else {
-	system("fakeroot true 2>/dev/null");
-	$rootcmd = $? ? undef : 'fakeroot';
-}
-
-if (not defined($rootcmd)) {
+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;
+
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+    debian/changelog
+    debian/control
+    debian/foo.service
+));
+
+if (uid_0_test_is_ok()) {
+	plan(tests => 2);
+} else {
 	plan skip_all => 'fakeroot required';
 }
-else {
-	plan(tests => 5);
-}
-
-system("$TOPDIR/dh_clean");
-
-my $service = "debian/foo.service";
-
-system("mkdir -p debian/foo debian/bar debian/baz");
-system("$rootcmd $TOPDIR/dh_installinit");
-ok(-e "debian/foo/lib/systemd/system/foo.service");
-ok(-e "debian/foo.postinst.debhelper");
-system("$TOPDIR/dh_clean");
-
-system("mkdir -p debian/foo debian/bar debian/baz");
-system("DH_COMPAT=11 $rootcmd $TOPDIR/dh_installinit");
-ok(! -e "debian/foo/lib/systemd/system/foo.service");
-ok(! -e "debian/foo.postinst.debhelper");
-system("$TOPDIR/dh_clean");
-
-system("mkdir -p debian/foo debian/bar debian/baz");
-system("mkdir -p debian/foo/lib/systemd/system/");
-system("cp debian/foo.service debian/foo/lib/systemd/system/");
-system("DH_COMPAT=11 $rootcmd $TOPDIR/dh_installinit");
-ok(! -e "debian/foo.postinst.debhelper");
-system("$TOPDIR/dh_clean");
 
-system("$TOPDIR/dh_clean");
+each_compat_up_to_and_incl_subtest(10, sub {
+	make_path(qw(debian/foo debian/bar debian/baz));
+	ok(run_dh_tool({ 'needs_root' => 1 }, 'dh_installinit'));
+	ok(-e "debian/foo/lib/systemd/system/foo.service");
+	ok(-e "debian/foo.postinst.debhelper");
+	ok(run_dh_tool('dh_clean'));
+
+});
+
+each_compat_from_and_above_subtest(11, sub {
+	make_path(qw(debian/foo debian/bar debian/baz));
+
+	ok(run_dh_tool({ 'needs_root' => 1 }, 'dh_installinit'));
+	ok(! -e "debian/foo/lib/systemd/system/foo.service");
+	ok(! -e "debian/foo.postinst.debhelper");
+	ok(run_dh_tool('dh_clean'));
+
+	make_path(qw(debian/foo/lib/systemd/system/ debian/bar debian/baz));
+	install_file('debian/foo.service', 'debian/foo/lib/systemd/system/foo.service');
+	ok(run_dh_tool({ 'needs_root' => 1 }, 'dh_installinit'));
+	ok(! -e "debian/foo.postinst.debhelper");
+	ok(run_dh_tool('dh_clean'));
+});
 
 # Local Variables:
 # indent-tabs-mode: t

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debhelper/debhelper.git




More information about the debhelper-devel mailing list