From af249d3cf6617cd635ed7aa54dddd83d7eb09cef Mon Sep 17 00:00:00 2001
From: Todd Gamblin <tgamblin@llnl.gov>
Date: Mon, 2 Dec 2019 01:03:20 -0800
Subject: [PATCH] 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 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)
+    )
-- 
GitLab