Add tests for partial upgrades

This commit is contained in:
morganamilo 2024-03-16 18:26:52 +00:00
parent a22d07b177
commit aff98a2bd9
No known key found for this signature in database
GPG key ID: E48D0A8326DE47C5
11 changed files with 197 additions and 0 deletions

View file

@ -334,6 +334,16 @@ pacman_tests = [
'tests/upgrade084.py',
'tests/upgrade090.py',
'tests/upgrade100.py',
'tests/partial001.py',
'tests/partial002.py',
'tests/partial003.py',
'tests/partial004.py',
'tests/partial005.py',
'tests/partial006.py',
'tests/partial007.py',
'tests/partial008.py',
'tests/partial009.py',
'tests/partial010.py',
'tests/xfercommand001.py',
'tests/upgrade-download-404.py',
'tests/upgrade-download-pkg-and-sig-with-filename.py',

View file

@ -0,0 +1,15 @@
self.description = "Partial upgrade"
sp1 = pmpkg("pkg1", "1.0-2")
self.addpkg2db("sync", sp1)
sp2 = pmpkg("pkg2", "1.0-2")
self.addpkg2db("sync", sp2)
lp2 = pmpkg("pkg2")
self.addpkg2db("local", lp2)
self.args = "-S %s" % sp1.name
self.addrule("PACMAN_RETCODE=1")
self.addrule("!PKG_EXIST=pkg1")

View file

@ -0,0 +1,16 @@
self.description = "Partial upgrade with --partial"
sp1 = pmpkg("pkg1", "1.0-2")
self.addpkg2db("sync", sp1)
sp2 = pmpkg("pkg2", "1.0-2")
self.addpkg2db("sync", sp2)
lp2 = pmpkg("pkg2")
self.addpkg2db("local", lp2)
self.args = "-S --partial %s" % sp1.name
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=pkg1")
self.addrule("PKG_EXIST=pkg2")

View file

@ -0,0 +1,16 @@
self.description = "No partial upgrade all needed packages are instaled"
sp1 = pmpkg("pkg1", "1.0-2")
self.addpkg2db("sync", sp1)
sp2 = pmpkg("pkg2", "1.0-2")
self.addpkg2db("sync", sp2)
lp2 = pmpkg("pkg2")
self.addpkg2db("local", lp2)
self.args = "-S %s %s" % (sp1.name, sp2.name)
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=pkg1")
self.addrule("PKG_EXIST=pkg2")

View file

@ -0,0 +1,18 @@
self.description = "No partial upgrade from ignorepkg"
sp1 = pmpkg("pkg1", "1.0-2")
self.addpkg2db("sync", sp1)
sp2 = pmpkg("pkg2", "1.0-2")
self.addpkg2db("sync", sp2)
lp2 = pmpkg("pkg2")
self.addpkg2db("local", lp2)
self.args = "-S %s --ignore %s" % (sp1.name, sp2.name)
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=pkg1")
self.addrule("PKG_EXIST=pkg2")
self.addrule("PKG_VERSION=pkg2|1.0-1")

View file

@ -0,0 +1,18 @@
self.description = "No partial upgrade from -U"
p1 = pmpkg("pkg1", "1.0-2")
self.addpkg(p1)
sp2 = pmpkg("pkg2", "1.0-2")
self.addpkg2db("sync", sp2)
lp2 = pmpkg("pkg2")
self.addpkg2db("local", lp2)
self.args = "-U %s" % p1.filename()
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=pkg1")
self.addrule("PKG_EXIST=pkg2")
self.addrule("PKG_VERSION=pkg2|1.0-1")

View file

@ -0,0 +1,18 @@
self.description = "Partial upgrade due to downgrade"
sp1 = pmpkg("pkg1", "1.0-2")
self.addpkg2db("sync", sp1)
sp2 = pmpkg("pkg2", "1.0-1")
self.addpkg2db("sync", sp2)
lp2 = pmpkg("pkg2", "1.0-2")
self.addpkg2db("local", lp2)
self.args = "-Su %s" % sp1.name
self.addrule("!PACMAN_RETCODE=0")
self.addrule("!PKG_EXIST=pkg1")
self.addrule("PKG_EXIST=pkg2")
self.addrule("PKG_VERSION=pkg2|1.0-2")

View file

@ -0,0 +1,20 @@
self.description = "No partial upgrade for reinstall"
sp1 = pmpkg("pkg1")
self.addpkg2db("sync", sp1)
sp2 = pmpkg("pkg2", "1.0-2")
self.addpkg2db("sync", sp2)
lp1 = pmpkg("pkg1")
self.addpkg2db("local", lp1)
lp2 = pmpkg("pkg2")
self.addpkg2db("local", lp2)
self.args = "-S %s" % sp1.name
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=pkg1")
self.addrule("PKG_EXIST=pkg2")

View file

@ -0,0 +1,22 @@
self.description = "Partial upgrade from replace"
sp1 = pmpkg("pkg1", "1.0-2")
self.addpkg2db("sync", sp1)
sp2 = pmpkg("pkg2", "1.0-1")
self.addpkg2db("sync", sp2)
sp3 = pmpkg("replace")
sp3.replaces = ["pkg2"]
self.addpkg2db("sync", sp3)
lp2 = pmpkg("pkg2")
self.addpkg2db("local", lp2)
self.args = "-S %s" % sp1.name
self.addrule("!PACMAN_RETCODE=0")
self.addrule("!PKG_EXIST=pkg1")
self.addrule("PKG_EXIST=pkg2")
self.addrule("!PKG_EXIST=replace")

View file

@ -0,0 +1,18 @@
self.description = "Partial upgrade due to unresolvable dependency"
packageA1 = pmpkg("dep")
self.addpkg2db("local", packageA1)
packageA1up = pmpkg("dep", "2.0-1")
packageA1up.depends = ["fake"];
self.addpkg2db("sync", packageA1up)
packageA2up = pmpkg("package")
packageA2up.depends = ["dep"];
self.addpkg2db("sync", packageA2up)
self.args = "-S package dep --ask=16"
self.addrule("!PACMAN_RETCODE=0")
self.addrule("!PKG_EXIST=package")
self.addrule("PKG_EXIST=dep")

View file

@ -0,0 +1,26 @@
self.description = "Sysupgrade with ignored package prevent other upgrade causes partial upgrade"
lp1 = pmpkg("glibc", "1.0-1")
lp2 = pmpkg("gcc-libs", "1.0-1")
lp2.depends = ["glibc>=1.0-1"]
lp3 = pmpkg("pcre", "1.0-1")
lp3.depends = ["gcc-libs"]
for p in lp1, lp2, lp3:
self.addpkg2db("local", p)
sp1 = pmpkg("glibc", "1.0-2")
sp2 = pmpkg("gcc-libs", "1.0-2")
sp2.depends = ["glibc>=1.0-2"]
sp3 = pmpkg("pcre", "1.0-2")
sp3.depends = ["gcc-libs"]
for p in sp1, sp2, sp3:
self.addpkg2db("sync", p)
self.args = "-Su --ignore %s --ask=16" % sp1.name
self.addrule("!PACMAN_RETCODE=0")
self.addrule("PKG_VERSION=glibc|1.0-1")
self.addrule("PKG_VERSION=gcc-libs|1.0-1")
self.addrule("PKG_VERSION=pcre|1.0-1")