@@ -5,7 +5,7 @@ Release: 1 License: x Group: x Url: x -Requires: b +Requires: b = 1 BuildRoot: %{_tmppath}/%{name} %description @@ -0,0 +1,13 @@ +Summary: x +Name: b +Version: 1 +Release: 1 +License: x +Group: x +Url: x +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files @@ -1,11 +1,11 @@ Summary: x Name: a -Version: 1 +Version: 2 Release: 1 License: x Group: x Url: x -Requires: b +Requires: b = 2 BuildRoot: %{_tmppath}/%{name} %description @@ -5,8 +5,6 @@ Release: 1 License: x Group: x Url: x -Requires: c = %{version} -Obsoletes: bb BuildRoot: %{_tmppath}/%{name} %description @@ -0,0 +1,14 @@ +Summary: x +Name: a +Version: 1 +Release: 1 +License: x +Group: x +Url: x +Requires: b +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files @@ -0,0 +1,14 @@ +Summary: x +Name: a +Version: 1 +Release: 1 +License: x +Group: x +Url: x +Requires: b +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files @@ -0,0 +1,15 @@ +Summary: x +Name: b +Version: 2 +Release: 1 +License: x +Group: x +Url: x +Requires: c = %{version} +Obsoletes: bb +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files @@ -0,0 +1,33 @@ +#!/usr/bin/perl + +# a requires b : bb or b +# bb requires c-1 +# b requires c-2 +# b obsoletes bb +# +# upgrading { bb, c-1 } to { b, c-2 } must be done in the same transaction, +# otherwise { c-1 } to { c-2 } implies removing { a, bb } +use strict; +use lib '.', 't'; +use helper; +use urpm::util; +use Test::More 'no_plan'; + +need_root_and_prepare(); + +my $name = 'split-transactions--strict-require-and-obsolete'; +urpmi_addmedia("$name-1 $::pwd/media/$name-1"); +urpmi_addmedia("$name-2 $::pwd/media/$name-2"); + +test('--split-length 0'); +test('--split-level 1'); # was broken (#31969) + +sub test { + my ($option) = @_; + + urpmi("--media $name-1 --auto a"); + check_installed_fullnames('a-1-1', 'bb-1-1', 'c-1-1'); + + urpmi("--media $name-2 $option --auto --auto-select"); + check_installed_fullnames_and_remove('a-1-1', 'b-2-1', 'c-2-1'); +} @@ -1,12 +1,8 @@ #!/usr/bin/perl -# a requires b : bb or b -# bb requires c-1 -# b requires c-2 -# b obsoletes bb +# a-1 requires b-1 +# a-2 requires b-2 # -# upgrading { bb, c-1 } to { b, c-2 } must be done in the same transaction, -# otherwise { c-1 } to { c-2 } implies removing { a, bb } use strict; use lib '.', 't'; use helper; @@ -19,15 +15,18 @@ my $name = 'split-transactions--strict-require'; urpmi_addmedia("$name-1 $::pwd/media/$name-1"); urpmi_addmedia("$name-2 $::pwd/media/$name-2"); -test('--split-length 0'); -test('--split-level 1'); # was broken (#31969) +test('--split-length 0 b'); +test('--split-level 1 b'); + +test('--split-length 0 --auto-select'); +test('--split-level 1 --auto-select'); sub test { - my ($option) = @_; + my ($para) = @_; - urpmi("--media $name-1 --auto a"); - check_installed_fullnames('a-1-1', 'bb-1-1', 'c-1-1'); + urpmi("--media $name-1 --auto a b"); + check_installed_names('a', 'b'); - urpmi("--media $name-2 $option --auto --auto-select"); - check_installed_fullnames_and_remove('a-1-1', 'b-2-1', 'c-2-1'); + urpmi("--media $name-2 --auto $para"); + check_installed_fullnames_and_remove('a-2-1', 'b-2-1'); } |