[Yum-devel] Multilib Update Test Cases

Florian Festi ffesti at redhat.com
Tue Oct 16 14:59:05 UTC 2007


Hi!

Time to have a look at the first few test cases. I am not 100% sure that the 
test cases really reflect yum's behavior for all corner cases. If you have 
the feeling that some results are out of scale or simply wrong please speak up.

The current test cases all involve the same small set of packages which are 
available in i368, x86_64 and noarch:
  * Installed packages: zsh-1-1.arch - iarch
  * Update packages: zsh-2-1.arch - uarch

Additional there is
  * Package requiring update package (requires: zsh=2-1): 
zsh-utils-2-1.noarch - ru

Each test calls runOperation with 3 parameters:
  * Command list
  * Packages installed in the rpmdb
  * Packages available in the repository

After this call there is a list with the result. If the result looked 
suspicious I added my own first guess as a comment.

There are serveral combinations of installed and available archs for the 
same package. Each combination is tested as a regular update and as an 
update needed to satisfy a requirement by ru (aka zsh-utils aka "Requires 
Update").


testUpdatei386ToMultilib # works
     runOperation(['update'], [ii386], [ui386, ux86_64])
     ui386
testUpdatei386ToMultilibForDependency
     runOperation(['install', 'zsh-utils'], [ii386], [ui386, ux86_64, ru])
     ii386, ux86_64, ru
     #ui386, ru
# this doesn't really do an update. If this really works (md5 file conflicts 
will make that break in most real world cases) we'll end up with [ui386, 
ux86_64, ru] installed after running "yum update".

testUpdatex86_64ToMultilib # works
     runOperation(['update'], [ix86_64], [ui386, ux86_64])
     ux86_64
testUpdatex86_64ToMultilibForDependency # works - because default behavior 
matches the need
     runOperation(['install', 'zsh-utils'], [ix86_64], [ui386, ux86_64, ru])
     ux86_64, ru

testUpdateMultilibToMultilib # works
     runOperation(['update'], [ii386, ix86_64], [ui386, ux86_64])
     ui386, ux86_64
testUpdateMultilibToMultilibForDependency
     runOperation(['install', 'zsh-utils'], [ii386, ix86_64], [ui386, 
ux86_64, ru])
     #ui386, ux86_64,  ru
     ii386, ux86_64,  ru
#similar problem as testUpdatei386ToMultilibForDependency

testUpdatei386Tonoarch # works
     runOperation(['update'], [ii386], [unoarch])
     unoarch
testUpdatei386TonoarchForDependency
     runOperation(['install', 'zsh-utils'], [ii386], [unoarch, ru])
     #unoarch, ru
     ii386, unoarch, ru
#similar problem as testUpdatei386ToMultilibForDependency

testUpdateMultilibTonoarch
     runOperation(['update'], [ii386, ix86_64], [unoarch])
     #unoarch
     unoarch, ix86_64
# autch, is this really true? need to try with an real system...
testUpdateMultilibTonoarchForDependency
     runOperation(['install', 'zsh-utils'], [ii386, ix86_64], [unoarch, ru])
     #unoarch, ru
     ii386, ix86_64, unoarch, ru
# how are those outdated pkgs ever suposed to go away?

testUpdatenoarchToMultilib
     runOperation(['update'], [inoarch], [ui386, ux86_64])
     ui386, ux86_64 # ux86_64 only would be an alternative policy
testUpdatenoarchToMultilibForDependency
     runOperation(['install', 'zsh-utils'], [inoarch], [ui386, ux86_64, ru])
     # ui386, ux86_64, ru
     # ux86_64, ru
     inoarch, ux86_64, ru
     # after "yum update" (remember md5 file conflicts) we'd end up with 
[ui386, ux86_64, ru] - which is ok

For me it looks like the problem is that the update for requirement needs to 
be more like the regular update - like taking the pkgs already installed 
into account. Any other opinions?

Florian



More information about the Yum-devel mailing list