aboutsummaryrefslogtreecommitdiff
path: root/test cases/frameworks/17 mpi
diff options
context:
space:
mode:
authorMichael Hirsch, Ph.D <scivision@users.noreply.github.com>2019-10-17 15:46:07 -0400
committerJussi Pakkanen <jpakkane@gmail.com>2019-10-18 01:01:30 +0300
commit89ced3fe5856662fced49a934a044bdebe272578 (patch)
tree74712002553103c1e05dd8f755ee3244df214a75 /test cases/frameworks/17 mpi
parent88e77e69bc91eeac271c7806fd2b1fc398db9a42 (diff)
downloadmeson-89ced3fe5856662fced49a934a044bdebe272578.zip
meson-89ced3fe5856662fced49a934a044bdebe272578.tar.gz
meson-89ced3fe5856662fced49a934a044bdebe272578.tar.bz2
MPI: don't excessively skip Windows test cases, which can hide real problems
Diffstat (limited to 'test cases/frameworks/17 mpi')
-rw-r--r--test cases/frameworks/17 mpi/main.cpp1
-rw-r--r--test cases/frameworks/17 mpi/meson.build47
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()))