#!/usr/bin/perl use strict; use lib '.', 't'; use helper; use Test::More 'no_plan'; set_path(); need_root_and_prepare(); various(); urpmq_various(); urpmi_force_skip_unknown(); rpm_v3() if !is_rpm_v3_support_broken(); sub various { my $name = 'various'; foreach my $medium_name ('various', 'various_nohdlist', 'various nohdlist', 'various_no_subdir') { urpmi_addmedia("'$medium_name' '$::pwd/media/$medium_name'"); urpmi($name); check_installed_fullnames("$name-1-1"); urpme($name); urpmi_removemedia("'$medium_name'"); } } sub urpmq_various { foreach my $medium_name ('various', 'various2', 'various3') { urpmi_addmedia("'$medium_name' '$::pwd/media/$medium_name'"); } is(run_urpm_cmd('urpmq --fuzzy v'), "various\nvarious2\nvarious3\n"); is(run_urpm_cmd('urpmq --list'), "various\nvarious2\nvarious3\n"); 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); require urpm::select; my $noverify_opt = urpm::select::_rpm_version() ge 4.14.2 ? '--noverify' : ''; system_("rpm $noverify_opt --root $::pwd/root -i --ignorearch --noscripts media/rpm-v3/*.i386.rpm"); check_installed_names(@names); foreach ('/lib/libtermcap.so.2.0.8', '/usr/lib/libp2c.so.1.2.0', '/usr/X11R6/lib/X11/nls/C') { ok(-e "root$_", "root$_ should exist"); ok(-s "root$_", "root$_ should not be empty"); } system_("rpm --root $::pwd/root -e --noscripts " . join(' ', @names)); is(`rpm -qa --root $::pwd/root`, ''); foreach my $medium_name ('rpm-v3', 'rpm-v3_nohdlist', 'rpm-v3_no_subdir') { urpmi_addmedia("$medium_name $::pwd/media/$medium_name"); urpmi('--no-verify-rpm --noscripts ' . join(' ', @names)); check_installed_names(@names); urpme('-a --auto --noscripts'); is(`rpm -qa --root $::pwd/root`, ''); urpmi_removemedia($medium_name); } foreach my $src_rpm (glob('media/rpm-v3/*.rpm')) { my ($wanted_arch) = $src_rpm =~ /(\w+)\.rpm$/; chomp(my $fullname = run_urpm_cmd("urpmq -f $src_rpm")); my ($arch) = $fullname =~ /(\w+)$/; is($arch, $wanted_arch, "$fullname should have arch $wanted_arch (found $arch)"); } }