diff options
12 files changed, 104 insertions, 18 deletions
diff --git a/t/data/SPECS/split-transactions--strict-require-1/a.spec b/t/data/SPECS/split-transactions--strict-require-1/a.spec index b0345d65..b9d1643b 100644 --- a/t/data/SPECS/split-transactions--strict-require-1/a.spec +++ b/t/data/SPECS/split-transactions--strict-require-1/a.spec @@ -5,7 +5,7 @@ Release: 1 License: x Group: x Url: x -Requires: b +Requires: b = 1 BuildRoot: %{_tmppath}/%{name} %description diff --git a/t/data/SPECS/split-transactions--strict-require-1/b.spec b/t/data/SPECS/split-transactions--strict-require-1/b.spec new file mode 100644 index 00000000..337a7807 --- /dev/null +++ b/t/data/SPECS/split-transactions--strict-require-1/b.spec @@ -0,0 +1,13 @@ +Summary: x +Name: b +Version: 1 +Release: 1 +License: x +Group: x +Url: x +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files diff --git a/t/data/SPECS/split-transactions--strict-require-2/a.spec b/t/data/SPECS/split-transactions--strict-require-2/a.spec index b0345d65..8c506dea 100644 --- a/t/data/SPECS/split-transactions--strict-require-2/a.spec +++ b/t/data/SPECS/split-transactions--strict-require-2/a.spec @@ -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 diff --git a/t/data/SPECS/split-transactions--strict-require-2/b.spec b/t/data/SPECS/split-transactions--strict-require-2/b.spec index 9986a114..61c0beca 100644 --- a/t/data/SPECS/split-transactions--strict-require-2/b.spec +++ b/t/data/SPECS/split-transactions--strict-require-2/b.spec @@ -5,8 +5,6 @@ Release: 1 License: x Group: x Url: x -Requires: c = %{version} -Obsoletes: bb BuildRoot: %{_tmppath}/%{name} %description diff --git a/t/data/SPECS/split-transactions--strict-require-and-obsolete-1/a.spec b/t/data/SPECS/split-transactions--strict-require-and-obsolete-1/a.spec new file mode 100644 index 00000000..b0345d65 --- /dev/null +++ b/t/data/SPECS/split-transactions--strict-require-and-obsolete-1/a.spec @@ -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 diff --git a/t/data/SPECS/split-transactions--strict-require-1/bb.spec b/t/data/SPECS/split-transactions--strict-require-and-obsolete-1/bb.spec index 4d3a9673..4d3a9673 100644 --- a/t/data/SPECS/split-transactions--strict-require-1/bb.spec +++ b/t/data/SPECS/split-transactions--strict-require-and-obsolete-1/bb.spec diff --git a/t/data/SPECS/split-transactions--strict-require-1/c-1.spec b/t/data/SPECS/split-transactions--strict-require-and-obsolete-1/c-1.spec index 21381cf9..21381cf9 100644 --- a/t/data/SPECS/split-transactions--strict-require-1/c-1.spec +++ b/t/data/SPECS/split-transactions--strict-require-and-obsolete-1/c-1.spec diff --git a/t/data/SPECS/split-transactions--strict-require-and-obsolete-2/a.spec b/t/data/SPECS/split-transactions--strict-require-and-obsolete-2/a.spec new file mode 100644 index 00000000..b0345d65 --- /dev/null +++ b/t/data/SPECS/split-transactions--strict-require-and-obsolete-2/a.spec @@ -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 diff --git a/t/data/SPECS/split-transactions--strict-require-and-obsolete-2/b.spec b/t/data/SPECS/split-transactions--strict-require-and-obsolete-2/b.spec new file mode 100644 index 00000000..9986a114 --- /dev/null +++ b/t/data/SPECS/split-transactions--strict-require-and-obsolete-2/b.spec @@ -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 diff --git a/t/data/SPECS/split-transactions--strict-require-2/c-2.spec b/t/data/SPECS/split-transactions--strict-require-and-obsolete-2/c-2.spec index 3ede1e1e..3ede1e1e 100644 --- a/t/data/SPECS/split-transactions--strict-require-2/c-2.spec +++ b/t/data/SPECS/split-transactions--strict-require-and-obsolete-2/c-2.spec diff --git a/t/superuser--split-transactions--strict-require-and-obsolete.t b/t/superuser--split-transactions--strict-require-and-obsolete.t new file mode 100644 index 00000000..6ad4aec9 --- /dev/null +++ b/t/superuser--split-transactions--strict-require-and-obsolete.t @@ -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'); +} diff --git a/t/superuser--split-transactions--strict-require.t b/t/superuser--split-transactions--strict-require.t index f89947d8..f1493857 100644 --- a/t/superuser--split-transactions--strict-require.t +++ b/t/superuser--split-transactions--strict-require.t @@ -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'); } |