diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2018-08-30 11:50:11 +0300 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2018-08-30 11:50:11 +0300 |
commit | 90dd10b7719d0e7fffff85474aa44a505ff001ac (patch) | |
tree | f982c0ab9a538ea6adac2ce87cf691ef93922af2 /t/maintscript.t | |
parent | d142a13285106cade800a9956aa7cf50fe5873e9 (diff) | |
parent | d9052a05dfc46f9589aaca3ad8e6e01c6e927101 (diff) | |
download | debhelper-90dd10b7719d0e7fffff85474aa44a505ff001ac.tar.gz |
Merge https://salsa.debian.org/debian/debhelper
Diffstat (limited to 't/maintscript.t')
-rwxr-xr-x | t/maintscript.t | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/t/maintscript.t b/t/maintscript.t index a69c99c7..cec4fab8 100755 --- a/t/maintscript.t +++ b/t/maintscript.t @@ -9,11 +9,7 @@ use lib dirname(__FILE__); use Test::DH; use Debian::Debhelper::Dh_Lib qw(!dirname); -if (uid_0_test_is_ok()) { - plan(tests => 1); -} else { - plan skip_all => 'fakeroot required'; -} +plan(tests => 2); each_compat_up_to_and_incl_subtest(10, sub { my @scripts = qw{postinst preinst prerm postrm}; @@ -29,7 +25,7 @@ mv_conffile /etc/2 /etc/3 1.0-1 EOF close($fd) or die("close($file): $!\n"); - run_dh_tool( { 'needs_root' => 1 }, 'dh_installdeb'); + run_dh_tool('dh_installdeb'); for my $script (@scripts) { my @output=`cat debian/debhelper.$script.debhelper`; @@ -38,3 +34,37 @@ EOF } }); +sub test_maintscript_syntax { + my ($contents) = @_; + my @scripts = map { ("debian/debhelper.${_}.debhelper", "debian/$_") } qw{postinst preinst prerm postrm}; + my $file = 'debian/maintscript'; + + + open(my $fd, ">", $file) or die("open($file): $!"); + print {$fd} <<EOF; +${contents} +EOF + close($fd) or die("close($file): $!\n"); + + my $res = run_dh_tool( { 'quiet' => 1 }, 'dh_installdeb'); + + remove_tree('debian/debhelper', 'debian/tmp', 'debian/.debhelper'); + rm_files(@scripts); + + return $res; +} + +# Negative tests +each_compat_from_and_above_subtest(12, sub { + ok(!test_maintscript_syntax('rm_conffile foo 1.0~'), "rm_conffile absolute path check"); + ok(!test_maintscript_syntax('rm_conffile /foo 1.0\~'), "rm_conffile version check"); + ok(!test_maintscript_syntax('rm_conffile /foo 1.0~ some_pkg'), "rm_conffile package name check"); + ok(!test_maintscript_syntax('rm_conffile /foo 1.0~ some-pkg --'), "rm_conffile separator check"); + + ok(!test_maintscript_syntax('mv_conffile foo /bar 1.0~'), "mv_conffile absolute (current) path check"); + ok(!test_maintscript_syntax('mv_conffile /foo bar 1.0~'), "mv_conffile absolute (current) path check"); + ok(!test_maintscript_syntax('mv_conffile /foo /bar 1.0\~'), "mv_conffile version check"); + ok(!test_maintscript_syntax('mv_conffile /foo /bar 1.0~ some_pkg'), "mv_conffile package name check"); + ok(!test_maintscript_syntax('mv_conffile /foo /bar 1.0~ some-pkg -- '), "mv_conffile separator check "); +}); + |