From c091c6d4123a08f35e5a1c270806df190bb18ce9 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Sun, 22 Jun 2014 10:06:50 -0700 Subject: [PATCH] Make tests use mock compiler configuration. - makes sure tests don't fail on systems that don't have some compilers (e.g. clang). - more control over specific test cases for compilers. --- lib/spack/spack/__init__.py | 6 +++++- lib/spack/spack/test/mock_packages_test.py | 9 ++++++++- var/spack/mock_configs/site_spackconfig | 12 ++++++++++++ var/spack/mock_configs/user_spackconfig | 0 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 var/spack/mock_configs/site_spackconfig create mode 100644 var/spack/mock_configs/user_spackconfig diff --git a/lib/spack/spack/__init__.py b/lib/spack/spack/__init__.py index 6046663ea8..287f2f862c 100644 --- a/lib/spack/spack/__init__.py +++ b/lib/spack/spack/__init__.py @@ -64,10 +64,14 @@ db = PackageDB(packages_path) # -# This is the path to mock packages used by spack for testing. +# Paths to mock files for testing. # mock_packages_path = join_path(var_path, "mock_packages") +mock_config_path = join_path(var_path, "mock_configs") +mock_site_config = join_path(mock_config_path, "site_spackconfig") +mock_user_config = join_path(mock_config_path, "user_spackconfig") + # # This controls how spack lays out install prefixes and # stage directories. diff --git a/lib/spack/spack/test/mock_packages_test.py b/lib/spack/spack/test/mock_packages_test.py index e9a8113c09..adde70ff6c 100644 --- a/lib/spack/spack/test/mock_packages_test.py +++ b/lib/spack/spack/test/mock_packages_test.py @@ -25,9 +25,11 @@ import unittest import spack +import spack.config from spack.packages import PackageDB from spack.spec import Spec + def set_pkg_dep(pkg, spec): """Alters dependence information for a pacakge. Use this to mock up constraints. @@ -45,9 +47,14 @@ def setUp(self): self.real_db = spack.db spack.db = PackageDB(spack.mock_packages_path) + self.real_scopes = spack.config._scopes + spack.config._scopes = { + 'site' : spack.mock_site_config, + 'user' : spack.mock_user_config } @classmethod def tearDown(self): """Restore the real packages path after any test.""" - #restore_dependencies() spack.db = self.real_db + spack.config._scopes = self.real_scopes + diff --git a/var/spack/mock_configs/site_spackconfig b/var/spack/mock_configs/site_spackconfig new file mode 100644 index 0000000000..1358720362 --- /dev/null +++ b/var/spack/mock_configs/site_spackconfig @@ -0,0 +1,12 @@ +[compiler "gcc@4.5.0"] + cc = /path/to/gcc + cxx = /path/to/g++ + f77 = /path/to/gfortran + fc = /path/to/gfortran + +[compiler "clang@3.3"] + cc = /path/to/clang + cxx = /path/to/clang++ + f77 = None + fc = None + diff --git a/var/spack/mock_configs/user_spackconfig b/var/spack/mock_configs/user_spackconfig new file mode 100644 index 0000000000..e69de29bb2