summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/mpi/test/mt_init_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/mpi/test/mt_init_test.cpp')
-rw-r--r--src/boost/libs/mpi/test/mt_init_test.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/boost/libs/mpi/test/mt_init_test.cpp b/src/boost/libs/mpi/test/mt_init_test.cpp
new file mode 100644
index 00000000..cfd0f57b
--- /dev/null
+++ b/src/boost/libs/mpi/test/mt_init_test.cpp
@@ -0,0 +1,37 @@
+// Copyright (C) 2013 Alain Miniussi <alain.miniussi@oca.eu>
+
+// Use, modification and distribution is subject to the Boost Software
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+// test threading::level operations
+
+#include <boost/mpi.hpp>
+#include <iostream>
+#include <sstream>
+
+#define BOOST_TEST_MODULE mpi_mt_init
+#include <boost/test/included/unit_test.hpp>
+
+namespace mpi = boost::mpi;
+
+void
+test_mt_init(std::string s)
+{
+ mpi::threading::level required = mpi::threading::level(-1);
+ std::istringstream in(s);
+ in >> required;
+ BOOST_CHECK(!in.bad());
+ BOOST_CHECK(mpi::environment::thread_level() >= mpi::threading::single);
+ BOOST_CHECK(mpi::environment::thread_level() <= mpi::threading::multiple);
+}
+
+BOOST_AUTO_TEST_CASE(mt_init)
+{
+ mpi::environment env;
+ mpi::communicator comm;
+ test_mt_init("single");
+ test_mt_init("funneled");
+ test_mt_init("serialized");
+ test_mt_init("multiple");
+}