#!/usr/bin/perl use strict; use lib '.', 't'; use helper; use Test::More 'no_plan'; BEGIN { use_ok 'urpm::cfg' } need_root_and_prepare(); try1(); try2(); sub try1 { urpmi_addmedia("--distrib $::pwd"); check_urpmi('various', 'various2'); urpmi_update('--ignore Various'); check_conf('Various' => { ignore => 1 }); test_urpmi_fail('--auto various'); check_conf('Various Debug' => { ignore => 1 }); test_urpmi_fail('various-debug'); urpmi_update('--no-ignore "Various Debug"'); urpmi_update('"Various Debug"'); check_conf('Various Debug' => { ignore => undef }); check_urpmi('various-debug'); urpmi_removemedia('-a'); } # same as above, except urpmi.update is done before urpmi.update --no-ignore sub try2 { my ($want, $want3, $options) = @_; urpmi_addmedia("--distrib $::pwd"); urpmi_update('"Various Debug"'); check_conf('Various Debug' => { ignore => 1 }); test_urpmi_fail('various-debug'); urpmi_update('--no-ignore "Various Debug"'); check_conf('Various Debug' => { ignore => undef }); check_urpmi('various-debug'); urpmi_removemedia('-a'); } sub check_conf { my (%want) = @_; my $config = urpm::cfg::load_config("root/etc/urpmi/urpmi.cfg"); my %media = map { $_->{name} => $_ } @{$config->{media}}; foreach my $name (keys %want) { foreach my $field (keys %{$want{$name}}) { my $val = $want{$name}{$field}; is($media{$name}{$field}, $want{$name}{$field}, "$name:$field"); } } } sub check_urpmi { my (@names) = @_; urpmi(join(' ', @names)); check_installed_and_remove(@names); }