Skip to content
Snippets Groups Projects
Commit bf536f76 authored by Luca Weiss's avatar Luca Weiss
Browse files

test_upstream_compat: update for pmb v3

Update the testcases to use the new pmb v3 API.
parent 7603f41c
Branches master
No related tags found
No related merge requests found
Pipeline #208400 failed
......@@ -10,36 +10,35 @@ import pytest
import pmb.helpers.logging
import pmb.parse.apkindex
import pmb.parse
from pmb.core.context import get_context
@pytest.fixture
def args(request):
def setup_module(module):
# Initialize args
sys.argv = ["pmbootstrap",
"--aports", os.environ["PMAPORTS"],
"chroot"]
args = pmb.parse.arguments()
context = get_context()
# Initialize logging
pmb.helpers.logging.init(args)
request.addfinalizer(pmb.helpers.logging.logfd.close)
return args
pmb.helpers.logging.init(context.log, args.verbose, context.details_to_stdout)
def test_qt_versions(args):
def test_qt_versions():
"""
Verify, that all postmarketOS qt5- package versions match with Alpine's
qt5-qtbase version.
"""
# Upstream version
index = pmb.helpers.repo.alpine_apkindex_path(args, "community", "x86_64")
index_data = pmb.parse.apkindex.package(args, "qt5-qtbase",
index = pmb.helpers.repo.alpine_apkindex_path("community", "x86_64")
index_data = pmb.parse.apkindex.package("qt5-qtbase",
indexes=[index])
pkgver_upstream = index_data["version"].split("-r")[0]
pkgver_upstream = index_data.version.split("-r")[0]
# Iterate over our packages
failed = []
for path in glob.glob(args.aports + "/*/qt5-*/APKBUILD"):
for path in get_context().config.aports[0].glob("*/qt5-*/APKBUILD"):
# Read the pkgver
apkbuild = pmb.parse.apkbuild(path)
pkgname = apkbuild["pkgname"]
......@@ -64,14 +63,14 @@ def test_qt_versions(args):
assert [] == failed
def test_aportgen_versions(args):
def test_aportgen_versions():
"""
Verify that the packages generated by 'pmbootstrap aportgen' have
the same version (pkgver *and* pkgrel!) as the upstream packages
they are based on.
"""
# Get Alpine's "main" repository APKINDEX path
index = pmb.helpers.repo.alpine_apkindex_path(args, "main", "x86_64")
index = pmb.helpers.repo.alpine_apkindex_path("main", "x86_64")
# Alpine packages and patterns for our derivatives
map = {"binutils": "binutils-*",
......@@ -85,19 +84,19 @@ def test_aportgen_versions(args):
generated = "# Automatically generated aport, do not edit!"
for pkgname, pattern in map.items():
# Upstream version
index_data = pmb.parse.apkindex.package(args, pkgname,
index_data = pmb.parse.apkindex.package(pkgname,
indexes=[index])
version_upstream = index_data["version"]
version_upstream = index_data.version
# Iterate over our packages
for path in glob.glob(args.aports + "/*/" + pattern + "/APKBUILD"):
for path in get_context().config.aports[0].glob("*/" + pattern + "/APKBUILD"):
# Skip non-aportgen APKBUILDs
with open(path) as handle:
if generated not in handle.read():
continue
# Compare the version
print("Checking " + path)
print(f"Checking {path}")
apkbuild = pmb.parse.apkbuild(path)
version = apkbuild["pkgver"] + "-r" + apkbuild["pkgrel"]
if version != version_upstream:
......@@ -109,12 +108,12 @@ def test_aportgen_versions(args):
assert [] == failed
def test_soname_bump(args):
def test_soname_bump():
""" Use pmb.helpers.pkgrel_bump to check if the pmaports need a pkgrel bump
caused by a soname bump in Alpine. Example: a new openssl version was
released, which increased the soname version, and now all packages that
link against it, need to be rebuilt. """
if pmb.helpers.pkgrel_bump.auto(args, True):
if pmb.helpers.pkgrel_bump.auto(True):
raise RuntimeError("One or more packages need to be rebuilt, because"
" a library they link against had an incompatible"
" upgrade (soname bump). Run 'pmbootstrap"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment