Smoke test for parallel-netcdf package (#21400)
This commit is contained in:
parent
c01065ee73
commit
6447ec6ff5
@ -4,6 +4,7 @@
|
|||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
from spack import *
|
from spack import *
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
class ParallelNetcdf(AutotoolsPackage):
|
class ParallelNetcdf(AutotoolsPackage):
|
||||||
@ -19,6 +20,8 @@ class ParallelNetcdf(AutotoolsPackage):
|
|||||||
|
|
||||||
maintainers = ['skosukhin']
|
maintainers = ['skosukhin']
|
||||||
|
|
||||||
|
test_requires_compiler = True
|
||||||
|
|
||||||
def url_for_version(self, version):
|
def url_for_version(self, version):
|
||||||
if version >= Version('1.11.0'):
|
if version >= Version('1.11.0'):
|
||||||
url = "https://parallel-netcdf.github.io/Release/pnetcdf-{0}.tar.gz"
|
url = "https://parallel-netcdf.github.io/Release/pnetcdf-{0}.tar.gz"
|
||||||
@ -169,3 +172,32 @@ def configure_args(self):
|
|||||||
args.append('--enable-burst-buffering')
|
args.append('--enable-burst-buffering')
|
||||||
|
|
||||||
return args
|
return args
|
||||||
|
|
||||||
|
examples_src_dir = 'examples/CXX'
|
||||||
|
|
||||||
|
@run_after('install')
|
||||||
|
def cache_test_sources(self):
|
||||||
|
"""Copy the example source files after the package is installed to an
|
||||||
|
install test subdirectory for use during `spack test run`."""
|
||||||
|
self.cache_extra_test_sources([self.examples_src_dir])
|
||||||
|
|
||||||
|
def test(self):
|
||||||
|
test_dir = join_path(self.install_test_root, self.examples_src_dir)
|
||||||
|
# pnetcdf has many examples to serve as a suitable smoke check.
|
||||||
|
# column_wise was chosen based on the E4S test suite. Other
|
||||||
|
# examples should work as well.
|
||||||
|
test_exe = 'column_wise'
|
||||||
|
options = ['{0}.cpp'.format(test_exe), '-o', test_exe, '-lpnetcdf']
|
||||||
|
reason = 'test: compiling and linking pnetcdf example'
|
||||||
|
self.run_test(self.spec['mpi'].mpicxx, options, [],
|
||||||
|
installed=False, purpose=reason, work_dir=test_dir)
|
||||||
|
mpiexe_list = ['mpirun', 'mpiexec', 'srun']
|
||||||
|
for mpiexe in mpiexe_list:
|
||||||
|
if os.path.isfile(mpiexe):
|
||||||
|
self.run_test(mpiexe, ['-n', '4', test_exe], [],
|
||||||
|
installed=False,
|
||||||
|
purpose='test: pnetcdf smoke test',
|
||||||
|
skip_missing=True,
|
||||||
|
work_dir=test_dir)
|
||||||
|
break
|
||||||
|
self.run_test('rm', ['-f', test_exe], work_dir=test_dir)
|
||||||
|
Loading…
Reference in New Issue
Block a user