diff options
Diffstat (limited to 'src/t')
-rw-r--r-- | src/t/100_dpkg_divert.t | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/src/t/100_dpkg_divert.t b/src/t/100_dpkg_divert.t index 6d62fe561..f1e2775f0 100644 --- a/src/t/100_dpkg_divert.t +++ b/src/t/100_dpkg_divert.t @@ -33,11 +33,13 @@ if (! -x "@dd") { exit(0); } -plan tests => 251; +plan tests => 257; sub cleanup { system("rm -rf $tmpdir && mkdir -p $testdir"); - system("mkdir -p $admindir/updates && touch $admindir/status"); + system("mkdir -p $admindir/updates"); + system("rm -f $admindir/status && touch $admindir/status"); + system("rm -rf $admindir/info && mkdir -p $admindir/info"); } sub install_diversions { @@ -47,6 +49,27 @@ sub install_diversions { close(O); } +sub install_filelist { + my ($pkg, $arch, @files) = @_; + open(L, "> $admindir/info/$pkg.list"); + for my $file (@files) { + print L "$file\n"; + } + close(L); + # Only installed packages have their files list considered. + open(S, ">> $admindir/status"); + print S <<EOF; +Package: $pkg +Status: install ok installed +Version: 0 +Architecture: $arch +Maintainer: dummy +Description: dummy + +EOF + close(S); +} + sub call { my ($prog, $args, %opts) = @_; @@ -392,6 +415,24 @@ EOF cleanup(); +note("Adding diversion of file owned by --package"); + +install_filelist("coreutils", "i386", "$testdir/foo"); +install_diversions(''); +system("touch $testdir/foo"); + +call_divert(['--quiet', '--rename', '--add', '--package', 'coreutils', "$testdir/foo"], + expect_stderr => '', expect_stdout => ''); +ok(-e "$testdir/foo", "foo not renamed"); +ok(!-e "$testdir/foo.distrib", "foo renamed"); +diversions_eq(<<EOF); +$testdir/foo +$testdir/foo.distrib +coreutils +EOF + +cleanup(); + note("Remove diversions"); install_diversions(''); |