summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorNiels Thykier <niels@thykier.net>2017-07-02 11:39:15 +0000
committerNiels Thykier <niels@thykier.net>2017-07-02 11:39:15 +0000
commitb9ae8bb90b2fad04b45bd49aeeee2268df4f472b (patch)
tree2febf30fee06bdcd698bb1fc54912097eb9c53fb /t
parent376bedb5b198d37d4aad3240a5b6519c9bb2178f (diff)
dh_installinit.t: Convert to Test::DH
Signed-off-by: Niels Thykier <niels@thykier.net>
Diffstat (limited to 't')
-rwxr-xr-xt/dh_installinit/dh_installinit.t82
1 files changed, 38 insertions, 44 deletions
diff --git a/t/dh_installinit/dh_installinit.t b/t/dh_installinit/dh_installinit.t
index d05c2074..3898c52b 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