From 3ccf4fa6a9e2e17fe5bd8bf1b23500cae7379a1e Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Fri, 30 Nov 2007 10:14:46 +0000 Subject: - urpmi: o fix regression introduced in 4.10.15: "urpmi --force valid invalid" should warn about "invalid" but still install "valid" --- NEWS | 5 +++++ t/helper.pm | 6 +++++- t/superuser--file-conflicts.t | 5 ----- t/superuser--media_info_dir.t | 16 ++++++++++++++++ urpm/select.pm | 2 +- 5 files changed, 27 insertions(+), 7 deletions(-) diff --git a/NEWS b/NEWS index ba6f087b..d5de54c0 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,8 @@ +- urpmi: + o fix regression introduced in 4.10.15: + "urpmi --force valid invalid" should warn about "invalid" but still + install "valid" + Version 4.10.16 - 28 November 2007, by Pascal "Pixel" Rigaux - urpmi: diff --git a/t/helper.pm b/t/helper.pm index 210aadd6..58c1e8c4 100644 --- a/t/helper.pm +++ b/t/helper.pm @@ -5,7 +5,7 @@ use base 'Exporter'; our @EXPORT = qw(need_root_and_prepare start_httpd httpd_port urpmi_addmedia urpmi_removemedia urpmi_update - urpm_cmd urpmi_cmd urpmi urpme + urpm_cmd urpmi_cmd urpmi test_urpmi_fail urpme urpmi_cfg set_urpmi_cfg_global_options system_ system_should_fail rpm_is_jbj_version @@ -71,6 +71,10 @@ sub urpmi { my ($para) = @_; system_(urpmi_cmd() . " --ignoresize $urpmi_debug_opt $para"); } +sub test_urpmi_fail { + my ($para) = @_; + system_should_fail(urpmi_cmd() . " $para"); +} sub urpme { my ($para) = @_; system_(urpm_cmd('urpme') . " $para"); diff --git a/t/superuser--file-conflicts.t b/t/superuser--file-conflicts.t index d3fcf03b..9edf794d 100644 --- a/t/superuser--file-conflicts.t +++ b/t/superuser--file-conflicts.t @@ -153,11 +153,6 @@ sub test_rpm_i_fail { my $rpms = join(' ', map { "media/$medium_name/$_-*.rpm" } @rpms); system_should_fail("rpm --root $::pwd/root -i $rpms"); } -sub test_urpmi_fail { - my ($rpms) = @_; - system_should_fail(urpmi_cmd() . " $rpms"); -} - sub check_no_etc_files() { if (my @l = grep { !m!/urpmi$! } glob("$::pwd/root/etc/*")) { fail(join(' ', @l) . " files should not be there"); diff --git a/t/superuser--media_info_dir.t b/t/superuser--media_info_dir.t index 75bca982..b2d616f2 100644 --- a/t/superuser--media_info_dir.t +++ b/t/superuser--media_info_dir.t @@ -9,6 +9,7 @@ use Test::More 'no_plan'; need_root_and_prepare(); various(); urpmq_various(); +urpmi_force_skip_unknown(); rpm_v3(); sub various { @@ -33,6 +34,21 @@ sub urpmq_various { urpmi_removemedia('-a'); } +sub urpmi_force_skip_unknown { + my $name = 'various'; + urpmi_addmedia("$name $::pwd/media/$name"); + + urpmi($name); + check_installed_and_remove($name); + + test_urpmi_fail("$name unknown-pkg"); + + urpmi("--force $name unknown-pkg"); + check_installed_and_remove($name); + + urpmi_removemedia($name); +} + sub rpm_v3 { my @names = qw(libtermcap nls p2c); diff --git a/urpm/select.pm b/urpm/select.pm index 10dba29b..2d346ae2 100644 --- a/urpm/select.pm +++ b/urpm/select.pm @@ -182,7 +182,7 @@ sub _search_packages { N("The following packages contain %s: %s", $v, "\n" . join("\n", sort { $a cmp $b } keys %l)) ); - return; + $result = 0; } else { if (!@{$exact_a{$v} || $exact_ra{$v} || []}) { #- we found a non-exact match -- cgit v1.2.1