From af249d3cf6617cd635ed7aa54dddd83d7eb09cef Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Mon, 2 Dec 2019 01:03:20 -0800 Subject: package_sanity: add a test to enforce no nonexisting dependencies in builtin We shouldn't allow packages to have missing dependencies in the mainline. - [x] Add a test to enforce this. --- lib/spack/spack/test/package_sanity.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/spack/spack/test/package_sanity.py b/lib/spack/spack/test/package_sanity.py index e7ac1563eb..1764d8ac25 100644 --- a/lib/spack/spack/test/package_sanity.py +++ b/lib/spack/spack/test/package_sanity.py @@ -10,6 +10,7 @@ import re import pytest import spack.fetch_strategy +import spack.package import spack.paths import spack.repo import spack.util.executable as executable @@ -187,3 +188,18 @@ def test_prs_update_old_api(): assert not failing, msg.format( len(failing), ','.join(failing) ) + + +def test_all_dependencies_exist(): + """Make sure no packages have nonexisting dependencies.""" + missing = {} + pkgs = [pkg for pkg in spack.repo.path.all_package_names()] + spack.package.possible_dependencies( + *pkgs, transitive=True, missing=missing) + + lines = [ + "%s: [%s]" % (name, ", ".join(deps)) for name, deps in missing.items() + ] + assert not missing, "These packages have missing dependencies:\n" + ( + "\n".join(lines) + ) -- cgit v1.2.3-70-g09d2