summaryrefslogtreecommitdiffstats
path: root/t/superuser--provide-and-no-obsolete.t
diff options
context:
space:
mode:
Diffstat (limited to 't/superuser--provide-and-no-obsolete.t')
-rw-r--r--t/superuser--provide-and-no-obsolete.t35
1 files changed, 35 insertions, 0 deletions
diff --git a/t/superuser--provide-and-no-obsolete.t b/t/superuser--provide-and-no-obsolete.t
new file mode 100644
index 00000000..564bab5c
--- /dev/null
+++ b/t/superuser--provide-and-no-obsolete.t
@@ -0,0 +1,35 @@
+#!/usr/bin/perl
+
+# a somewhat weird in urpmi that can somehow be workarounded
+#
+# package "a-1" provides "c-1"
+# package "a-2" provides "c-2"
+# package "b-3" provides "c-3"
+# urpmi should still be able to upgrade "a-1" into "a-2" even in presence of "b-3"
+# (which do not obsolete "a" so can't be installed)
+
+use strict;
+use lib '.', 't';
+use helper;
+use Test::More 'no_plan';
+
+my $medium_name = 'obsolete-and-provide';
+
+need_root_and_prepare();
+
+urpmi_addmedia("$medium_name $::pwd/media/$medium_name");
+
+test(sub { urpmi('a'); check_installed_fullnames("a-2-1"); urpme('a') });
+test(sub { urpmi('b'); check_installed_fullnames("a-1-1", "b-3-1"); urpme('a b') });
+
+#- the following test fail. "urpmi --auto-select" should do the same as "urpmi a"
+#test(sub { urpmi('--auto-select'); check_installed_fullnames("a-2-1"); urpme('a') });
+
+sub test {
+ my ($f) = @_;
+ system_("rpm --root $::pwd/root -i media/$medium_name/a-1-*.rpm");
+ is(`rpm -qa --root $::pwd/root`, "a-1-1\n");
+
+ $f->();
+ check_nothing_installed();
+}