summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/spack/spack/test/concretize_preferences.py32
1 files changed, 30 insertions, 2 deletions
diff --git a/lib/spack/spack/test/concretize_preferences.py b/lib/spack/spack/test/concretize_preferences.py
index b95fc83010..54df4e1563 100644
--- a/lib/spack/spack/test/concretize_preferences.py
+++ b/lib/spack/spack/test/concretize_preferences.py
@@ -43,6 +43,9 @@ def concretize_scope(config, tmpdir):
spack.config.config_scopes.pop('concretize')
spack.package_prefs._pkgsort = PreferredPackages()
+ # reset provider index each time, too
+ spack.repo._provider_index = None
+
def concretize(abstract_spec):
return Spec(abstract_spec).concretized()
@@ -123,7 +126,8 @@ class TestConcretizePreferences(object):
# set up a packages.yaml file with a vdep as a key. We use
# syaml.load here to make sure source lines in the config are
# attached to parsed strings, as the error message uses them.
- conf = syaml.load("""mpi:
+ conf = syaml.load("""\
+mpi:
paths:
mpi-with-lapack@2.1: /path/to/lapack
""")
@@ -135,7 +139,8 @@ class TestConcretizePreferences(object):
def test_all_is_not_a_virtual(self):
"""Verify that `all` is allowed in packages.yaml."""
- conf = syaml.load("""all:
+ conf = syaml.load("""\
+all:
variants: [+mpi]
""")
spack.config.update_config('packages', conf, 'concretize')
@@ -143,3 +148,26 @@ class TestConcretizePreferences(object):
# should be no error for 'all':
spack.package_prefs._pkgsort = PreferredPackages()
spack.package_prefs.get_packages_config()
+
+ def test_external_mpi(self):
+ # make sure this doesn't give us an external first.
+ spec = Spec('mpi')
+ spec.concretize()
+ assert not spec['mpi'].external
+
+ # load config
+ conf = syaml.load("""\
+all:
+ providers:
+ mpi: [mpich]
+mpich:
+ buildable: false
+ paths:
+ mpich@3.0.4: /dummy/path
+""")
+ spack.config.update_config('packages', conf, 'concretize')
+
+ # ensure that once config is in place, external is used
+ spec = Spec('mpi')
+ spec.concretize()
+ assert spec['mpich'].external == '/dummy/path'