summaryrefslogtreecommitdiffstats
path: root/t/dh_missing/02-fail-on-missing.t
diff options
context:
space:
mode:
Diffstat (limited to 't/dh_missing/02-fail-on-missing.t')
-rwxr-xr-xt/dh_missing/02-fail-on-missing.t33
1 files changed, 33 insertions, 0 deletions
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');
+};
+