diff --git a/pmb/build/_package.py b/pmb/build/_package.py index 3a9b74e9..be936044 100644 --- a/pmb/build/_package.py +++ b/pmb/build/_package.py @@ -97,6 +97,8 @@ def get_depends(args, apkbuild): """ # Read makedepends and depends ret = list(apkbuild["makedepends"]) + if "!check" not in apkbuild["options"]: + ret += apkbuild["checkdepends"] if "ignore_depends" not in args or not args.ignore_depends: ret += apkbuild["depends"] ret = sorted(set(ret)) diff --git a/pmb/config/__init__.py b/pmb/config/__init__.py index 8dc09395..d6037d5a 100644 --- a/pmb/config/__init__.py +++ b/pmb/config/__init__.py @@ -190,6 +190,7 @@ apkbuild_attributes = { "depends": {"array": True}, "depends_dev": {"array": True}, "makedepends": {"array": True}, + "checkdepends": {"array": True}, "options": {"array": True}, "pkgname": {"array": False}, "pkgdesc": {"array": False}, diff --git a/test/test_build_package.py b/test/test_build_package.py index 07444a99..150a2f63 100644 --- a/test/test_build_package.py +++ b/test/test_build_package.py @@ -124,34 +124,34 @@ def test_check_arch(args): def test_get_depends(monkeypatch): func = pmb.build._package.get_depends apkbuild = {"pkgname": "test", "depends": ["a"], "makedepends": ["c", "b"], - "subpackages": ["d"]} + "checkdepends": "e", "subpackages": ["d"], "options": []} # Depends + makedepends args = args_patched(monkeypatch, ["pmbootstrap", "build", "test"]) - assert func(args, apkbuild) == ["a", "b", "c"] + assert func(args, apkbuild) == ["a", "b", "c", "e"] args = args_patched(monkeypatch, ["pmbootstrap", "install"]) - assert func(args, apkbuild) == ["a", "b", "c"] + assert func(args, apkbuild) == ["a", "b", "c", "e"] # Ignore depends (-i) args = args_patched(monkeypatch, ["pmbootstrap", "build", "-i", "test"]) - assert func(args, apkbuild) == ["b", "c"] + assert func(args, apkbuild) == ["b", "c", "e"] # Package depends on its own subpackage apkbuild["makedepends"] = ["d"] args = args_patched(monkeypatch, ["pmbootstrap", "build", "test"]) - assert func(args, apkbuild) == ["a"] + assert func(args, apkbuild) == ["a", "e"] # Package depends on itself apkbuild["makedepends"] = ["c", "b", "test"] args = args_patched(monkeypatch, ["pmbootstrap", "build", "test"]) - assert func(args, apkbuild) == ["a", "b", "c"] + assert func(args, apkbuild) == ["a", "b", "c", "e"] def test_build_depends(args, monkeypatch): # Shortcut and fake apkbuild func = pmb.build._package.build_depends apkbuild = {"pkgname": "test", "depends": ["a"], "makedepends": ["b"], - "subpackages": ["d"]} + "checkdepends": [], "subpackages": ["d"], "options": []} # No depends built (first makedepends + depends, then only makedepends) monkeypatch.setattr(pmb.build._package, "package", return_none)