summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2016-07-09 12:10:16 -0700
committerGitHub <noreply@github.com>2016-07-09 12:10:16 -0700
commitb0f4052bd8aee7d77bb6dd8bb022553cd0a4593d (patch)
tree7b39b26cd5b485bf047c17c97c5bc33f8f475003 /var
parentc086ccdab66be0443706b86f64e046965a76fe2c (diff)
parente482994a1505bf7b8e506872c8ac205fce68b217 (diff)
downloadspack-b0f4052bd8aee7d77bb6dd8bb022553cd0a4593d.tar.gz
spack-b0f4052bd8aee7d77bb6dd8bb022553cd0a4593d.tar.bz2
spack-b0f4052bd8aee7d77bb6dd8bb022553cd0a4593d.tar.xz
spack-b0f4052bd8aee7d77bb6dd8bb022553cd0a4593d.zip
Merge pull request #1169 from davydden/feature/install_argument_tests_petsc_fixes
--run-tests install argument and petsc fixes
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/petsc/package.py30
1 files changed, 16 insertions, 14 deletions
diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py
index 6a7bee9788..11f5c36c22 100644
--- a/var/spack/repos/builtin/packages/petsc/package.py
+++ b/var/spack/repos/builtin/packages/petsc/package.py
@@ -149,20 +149,22 @@ class Petsc(Package):
make("install")
# solve Poisson equation in 2D to make sure nothing is broken:
- with working_dir('src/ksp/ksp/examples/tutorials'):
- cc = os.environ['CC'] if '~mpi' in self.spec else self.spec['mpi'].mpicc # NOQA: ignore=E501
- os.system('%s ex50.c -I%s -L%s -lpetsc -o ex50' % (
- cc, prefix.include, prefix.lib))
- ex50 = Executable('./ex50')
- ex50('-da_grid_x', '4', '-da_grid_y', '4')
- if 'superlu-dist' in spec:
- ex50('-da_grid_x', '4', '-da_grid_y', '4', '-pc_type', 'lu', '-pc_factor_mat_solver_package', 'superlu_dist') # NOQA: ignore=E501
-
- if 'mumps' in spec:
- ex50('-da_grid_x', '4', '-da_grid_y', '4', '-pc_type', 'lu', '-pc_factor_mat_solver_package', 'mumps') # NOQA: ignore=E501
-
- if 'hypre' in spec:
- ex50('-da_grid_x', '4', '-da_grid_y', '4', '-pc_type', 'hypre', '-pc_hypre_type', 'boomeramg') # NOQA: ignore=E501
+ if ('mpi' in spec) and self.run_tests:
+ with working_dir('src/ksp/ksp/examples/tutorials'):
+ env['PETSC_DIR'] = self.prefix
+ cc = Executable(spec['mpi'].mpicc)
+ cc('ex50.c', '-I%s' % prefix.include, '-L%s' % prefix.lib,
+ '-lpetsc', '-lm', '-o', 'ex50')
+ run = Executable(join_path(spec['mpi'].prefix.bin, 'mpirun'))
+ run('ex50', '-da_grid_x', '4', '-da_grid_y', '4')
+ if 'superlu-dist' in spec:
+ run('ex50', '-da_grid_x', '4', '-da_grid_y', '4', '-pc_type', 'lu', '-pc_factor_mat_solver_package', 'superlu_dist') # NOQA: ignore=E501
+
+ if 'mumps' in spec:
+ run('ex50', '-da_grid_x', '4', '-da_grid_y', '4', '-pc_type', 'lu', '-pc_factor_mat_solver_package', 'mumps') # NOQA: ignore=E501
+
+ if 'hypre' in spec:
+ run('ex50', '-da_grid_x', '4', '-da_grid_y', '4', '-pc_type', 'hypre', '-pc_hypre_type', 'boomeramg') # NOQA: ignore=E501
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
# set up PETSC_DIR for everyone using PETSc package