From aff98a2bd9ef5292d88ec61e788cd7c9607c6843 Mon Sep 17 00:00:00 2001 From: morganamilo Date: Sat, 16 Mar 2024 18:26:52 +0000 Subject: [PATCH] Add tests for partial upgrades --- test/pacman/meson.build | 10 ++++++++++ test/pacman/tests/partial001.py | 15 +++++++++++++++ test/pacman/tests/partial002.py | 16 ++++++++++++++++ test/pacman/tests/partial003.py | 16 ++++++++++++++++ test/pacman/tests/partial004.py | 18 ++++++++++++++++++ test/pacman/tests/partial005.py | 18 ++++++++++++++++++ test/pacman/tests/partial006.py | 18 ++++++++++++++++++ test/pacman/tests/partial007.py | 20 ++++++++++++++++++++ test/pacman/tests/partial008.py | 22 ++++++++++++++++++++++ test/pacman/tests/partial009.py | 18 ++++++++++++++++++ test/pacman/tests/partial010.py | 26 ++++++++++++++++++++++++++ 11 files changed, 197 insertions(+) create mode 100644 test/pacman/tests/partial001.py create mode 100644 test/pacman/tests/partial002.py create mode 100644 test/pacman/tests/partial003.py create mode 100644 test/pacman/tests/partial004.py create mode 100644 test/pacman/tests/partial005.py create mode 100644 test/pacman/tests/partial006.py create mode 100644 test/pacman/tests/partial007.py create mode 100644 test/pacman/tests/partial008.py create mode 100644 test/pacman/tests/partial009.py create mode 100644 test/pacman/tests/partial010.py diff --git a/test/pacman/meson.build b/test/pacman/meson.build index c26ce0fa..390e1e6d 100644 --- a/test/pacman/meson.build +++ b/test/pacman/meson.build @@ -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', diff --git a/test/pacman/tests/partial001.py b/test/pacman/tests/partial001.py new file mode 100644 index 00000000..fa667c5a --- /dev/null +++ b/test/pacman/tests/partial001.py @@ -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") diff --git a/test/pacman/tests/partial002.py b/test/pacman/tests/partial002.py new file mode 100644 index 00000000..891f3117 --- /dev/null +++ b/test/pacman/tests/partial002.py @@ -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") diff --git a/test/pacman/tests/partial003.py b/test/pacman/tests/partial003.py new file mode 100644 index 00000000..b158a3a6 --- /dev/null +++ b/test/pacman/tests/partial003.py @@ -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") diff --git a/test/pacman/tests/partial004.py b/test/pacman/tests/partial004.py new file mode 100644 index 00000000..2bbaa08b --- /dev/null +++ b/test/pacman/tests/partial004.py @@ -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") + diff --git a/test/pacman/tests/partial005.py b/test/pacman/tests/partial005.py new file mode 100644 index 00000000..35e42abf --- /dev/null +++ b/test/pacman/tests/partial005.py @@ -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") + diff --git a/test/pacman/tests/partial006.py b/test/pacman/tests/partial006.py new file mode 100644 index 00000000..b254a8e1 --- /dev/null +++ b/test/pacman/tests/partial006.py @@ -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") + diff --git a/test/pacman/tests/partial007.py b/test/pacman/tests/partial007.py new file mode 100644 index 00000000..84e2a68c --- /dev/null +++ b/test/pacman/tests/partial007.py @@ -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") + diff --git a/test/pacman/tests/partial008.py b/test/pacman/tests/partial008.py new file mode 100644 index 00000000..44ff3255 --- /dev/null +++ b/test/pacman/tests/partial008.py @@ -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") + diff --git a/test/pacman/tests/partial009.py b/test/pacman/tests/partial009.py new file mode 100644 index 00000000..fcfde110 --- /dev/null +++ b/test/pacman/tests/partial009.py @@ -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") diff --git a/test/pacman/tests/partial010.py b/test/pacman/tests/partial010.py new file mode 100644 index 00000000..259e1ff0 --- /dev/null +++ b/test/pacman/tests/partial010.py @@ -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")