diff options
author | Michael Hirsch, Ph.D <scivision@users.noreply.github.com> | 2019-10-17 15:46:07 -0400 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2019-10-18 01:01:30 +0300 |
commit | 89ced3fe5856662fced49a934a044bdebe272578 (patch) | |
tree | 74712002553103c1e05dd8f755ee3244df214a75 | |
parent | 88e77e69bc91eeac271c7806fd2b1fc398db9a42 (diff) | |
download | meson-89ced3fe5856662fced49a934a044bdebe272578.zip meson-89ced3fe5856662fced49a934a044bdebe272578.tar.gz meson-89ced3fe5856662fced49a934a044bdebe272578.tar.bz2 |
MPI: don't excessively skip Windows test cases, which can hide real problems
-rw-r--r-- | test cases/frameworks/17 mpi/main.cpp | 1 | ||||
-rw-r--r-- | test cases/frameworks/17 mpi/meson.build | 47 |
2 files changed, 27 insertions, 21 deletions
diff --git a/test cases/frameworks/17 mpi/main.cpp b/test cases/frameworks/17 mpi/main.cpp index 0e0b621..199d913 100644 --- a/test cases/frameworks/17 mpi/main.cpp +++ b/test cases/frameworks/17 mpi/main.cpp @@ -1,4 +1,5 @@ #include <mpi.h> +#include <stdio.h> int main(int argc, char **argv) { diff --git a/test cases/frameworks/17 mpi/meson.build b/test cases/frameworks/17 mpi/meson.build index 8af9374..b6a44cf 100644 --- a/test cases/frameworks/17 mpi/meson.build +++ b/test cases/frameworks/17 mpi/meson.build @@ -1,11 +1,6 @@ project('mpi', 'c', 'cpp', default_options: ['b_asneeded=false']) cc = meson.get_compiler('c') - -if build_machine.system() == 'windows' and cc.get_id() != 'msvc' - error('MESON_SKIP_TEST: MPI not available on Windows without MSVC.') -endif - mpic = dependency('mpi', language : 'c', required : false) if not mpic.found() error('MESON_SKIP_TEST: MPI not found, skipping.') @@ -14,31 +9,41 @@ exec = executable('exec', 'main.c', dependencies : [mpic]) -test('MPI C', exec) +test('MPI C', exec, timeout: 10) -if build_machine.system() != 'windows' - # C++ MPI not supported by MS-MPI - mpicpp = dependency('mpi', language : 'cpp') - execpp = executable('execpp', - 'main.cpp', - dependencies : [mpicpp]) - test('MPI C++', execpp) +# C++ MPI not supported by MS-MPI +cpp = meson.get_compiler('cpp') +mpicpp = dependency('mpi', language : 'cpp', required: false) +if not cpp.links(''' +#include <mpi.h> +#include <stdio.h> +int main(int argc, char **argv) {MPI::Init(argc, argv);} +''', dependencies: mpicpp, name: 'C++ MPI') + mpicpp = disabler() endif +execpp = executable('execpp', + 'main.cpp', + dependencies : [mpicpp]) -# One of few feasible ways to use MPI for Fortran on Windows is via Intel compilers. -if build_machine.system() != 'windows' or cc.get_id() == 'intel' - if add_languages('fortran', required : false) - mpifort = dependency('mpi', language : 'fortran') +test('MPI C++', execpp, timeout: 10) - exef = executable('exef', - 'main.f90', - dependencies : [mpifort]) - test('MPI Fortran', exef) +if add_languages('fortran', required : false) + fc = meson.get_compiler('fortran') + mpif = dependency('mpi', language : 'fortran', required: false) + if not fc.links('use mpi; end', dependencies: mpif, name: 'Fortran MPI') + mpif = disabler() endif + + exef = executable('exef', + 'main.f90', + dependencies : mpif) + + test('MPI Fortran', exef, timeout: 10) endif + # Check we can apply a version constraint if mpic.version() != 'unknown' dependency('mpi', version: '>=@0@'.format(mpic.version())) |