The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/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 = 'provide-and-no-obsolete';

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') });

#- "urpmi --auto-select --auto" should do the same as "urpmi a", #31130
test(sub { urpmi('--auto-select --auto'); 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();
}