if (MSVC)
message(STATUS "Disable fast raw contextes on Microsoft Visual.")
else()
- set(HAVE_RAWCTX 1)
+ set(HAVE_RAW_CONTEXTS 1)
endif()
ENDIF()
# We should use feature detection for this instead:
if (Boost_VERSION LESS 105600)
message("Found Boost.Context API v1")
- set(HAVE_BOOST_CONTEXT 1)
+ set(HAVE_BOOST_CONTEXTS 1)
else()
message("Found Boost.Context API v2")
- set(HAVE_BOOST_CONTEXT 2)
+ set(HAVE_BOOST_CONTEXTS 2)
endif()
else()
message (" boost : found.")
message (" boost-context: missing. Install libboost-context-dev for this optional feature.")
- set(HAVE_BOOST_CONTEXT 0)
+ set(HAVE_BOOST_CONTEXTS 0)
endif()
# Checks for header libraries functions.
set(HAVE_MAKECONTEXT 1)
endif()
-set(CONTEXT_UCONTEXT 0)
-set(CONTEXT_THREADS 0)
+set(HAVE_UCONTEXT_CONTEXTS 0)
+set(HAVE_THREAD_CONTEXTS 0)
if(enable_jedule)
set(HAVE_JEDULE 1)
#If can have both context
if(HAVE_UCONTEXT)
- set(CONTEXT_UCONTEXT 1)
+ set(HAVE_UCONTEXT_CONTEXTS 1)
message("-- Support for ucontext factory")
endif()
if(HAVE_PTHREAD)
- set(CONTEXT_THREADS 1)
+ set(HAVE_THREAD_CONTEXTS 1)
message("-- Support for thread context factory")
endif()
#define MALLOCATOR_COMPILED_IN @MALLOCATOR_IS_WANTED@
/* Define if xbt contexts are based on our threads implementation or not */
-#cmakedefine CONTEXT_THREADS @CONTEXT_THREADS@
+#cmakedefine HAVE_THREAD_CONTEXTS @HAVE_THREAD_CONTEXTS@
/* Jedule output */
#cmakedefine HAVE_JEDULE @HAVE_JEDULE@
sprintf(description,
"Context factory to use in SIMIX. Possible values: %s",
dflt_ctx_fact);
-#ifdef CONTEXT_UCONTEXT
+#ifdef HAVE_UCONTEXT_CONTEXTS
dflt_ctx_fact = "ucontext";
p += sprintf(p, ", %s", dflt_ctx_fact);
#endif
-#ifdef HAVE_RAWCTX
+#ifdef HAVE_RAW_CONTEXTS
dflt_ctx_fact = "raw";
p += sprintf(p, ", %s", dflt_ctx_fact);
#endif
void resume();
};
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
class BoostParallelContext : public BoostContext {
public:
BoostParallelContext(std::function<void()> code,
{
BoostContext::parallel_ = SIMIX_context_is_parallel();
if (BoostContext::parallel_) {
-#ifndef CONTEXT_THREADS
+#ifndef HAVE_THREAD_CONTEXTS
xbt_die("No thread support for parallel context execution");
#else
int nthreads = SIMIX_context_get_nthreads();
BoostContextFactory::~BoostContextFactory()
{
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
if (BoostContext::parmap_) {
xbt_parmap_destroy(BoostContext::parmap_);
BoostContext::parmap_ = nullptr;
{
BoostContext* context = nullptr;
if (BoostContext::parallel_)
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
context = this->new_context<BoostParallelContext>(
std::move(code), cleanup_func, process);
#else
void BoostContextFactory::run_all()
{
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
if (BoostContext::parallel_) {
BoostContext::threads_working_ = 0;
xbt_parmap_apply(BoostContext::parmap_,
smx_context_usable_stack_size,
smx_ctx_boost_wrapper);
} else {
- #if HAVE_BOOST_CONTEXT == 1
+ #if HAVE_BOOST_CONTEXTS == 1
this->fc_ = new boost::context::fcontext_t();
#endif
if (BoostContext::maestro_context_ == nullptr)
BoostContext::~BoostContext()
{
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
if (!this->stack_)
delete this->fc_;
#endif
void BoostContext::resume()
{
SIMIX_context_set_current(this);
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
boost::context::jump_fcontext(
maestro_context_->fc_, this->fc_,
(intptr_t) this);
maestro_context_);
}
SIMIX_context_set_current((smx_context_t) next_context);
- #if HAVE_BOOST_CONTEXT == 1
+ #if HAVE_BOOST_CONTEXTS == 1
boost::context::jump_fcontext(
this->fc_, next_context->fc_, (intptr_t) next_context);
#else
// BoostParallelContext
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
void BoostParallelContext::suspend()
{
}
SIMIX_context_set_current((smx_context_t) next_context);
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
boost::context::jump_fcontext(
this->fc_, next_context->fc_, (intptr_t)next_context);
#else
workers_context_[worker_id] = worker_context;
SIMIX_context_set_current(this);
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
boost::context::jump_fcontext(
worker_context->fc_, this->fc_, (intptr_t) this);
#else
static unsigned long process_index_;
static BoostContext* maestro_context_;
protected:
-#if HAVE_BOOST_CONTEXT == 1
+#if HAVE_BOOST_CONTEXTS == 1
boost::context::fcontext_t* fc_ = nullptr;
#else
boost::context::fcontext_t fc_;
// ***** Loads of static stuff
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
static xbt_parmap_t raw_parmap;
static simgrid::simix::RawContext** raw_workers_context; /* space to save the worker context in each thread */
static unsigned long raw_threads_working; /* number of threads that have started their work */
/* If you implement raw contexts for other processors, don't forget to
- update the definition of HAVE_RAWCTX in tools/cmake/CompleteInFiles.cmake */
+ update the definition of HAVE_RAW_CONTEXTS in tools/cmake/CompleteInFiles.cmake */
raw_stack_t raw_makecontext(void* malloced_stack, int stack_size,
rawctx_entry_point_t entry_point, void* arg) {
#endif
raw_context_parallel = SIMIX_context_is_parallel();
if (raw_context_parallel) {
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
int nthreads = SIMIX_context_get_nthreads();
xbt_os_thread_key_create(&raw_worker_id_key);
// TODO, lazily init
RawContextFactory::~RawContextFactory()
{
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
if (raw_parmap)
xbt_parmap_destroy(raw_parmap);
xbt_free(raw_workers_context);
void RawContextFactory::run_all_parallel()
{
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
raw_threads_working = 0;
if (raw_parmap == nullptr)
raw_parmap = xbt_parmap_new(
void RawContext::suspend_parallel()
{
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
/* determine the next context */
smx_process_t next_work = (smx_process_t) xbt_parmap_next(raw_parmap);
RawContext* next_context = nullptr;
void RawContext::resume_parallel()
{
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
unsigned long worker_id = __sync_fetch_and_add(&raw_threads_working, 1);
xbt_os_thread_set_specific(raw_worker_id_key, (void*)(uintptr_t) worker_id);
RawContext* worker_context = (RawContext*) SIMIX_context_self();
}
}
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
static xbt_parmap_t sysv_parmap;
static simgrid::simix::ParallelUContext** sysv_workers_context; /* space to save the worker's context in each thread */
static unsigned long sysv_threads_working; /* number of threads that have started their work */
{
if (SIMIX_context_is_parallel()) {
sysv_parallel = true;
-#ifdef CONTEXT_THREADS /* To use parallel ucontexts a thread pool is needed */
+#ifdef HAVE_THREAD_CONTEXTS /* To use parallel ucontexts a thread pool is needed */
int nthreads = SIMIX_context_get_nthreads();
sysv_parmap = nullptr;
sysv_workers_context = xbt_new(ParallelUContext*, nthreads);
UContextFactory::~UContextFactory()
{
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
if (sysv_parmap)
xbt_parmap_destroy(sysv_parmap);
xbt_free(sysv_workers_context);
void UContextFactory::run_all()
{
if (sysv_parallel) {
- #ifdef CONTEXT_THREADS
+ #ifdef HAVE_THREAD_CONTEXTS
sysv_threads_working = 0;
// Parmap_apply ensures that every working thread get an index in the
// process_to_run array (through an atomic fetch_and_add),
/** Run one particular simulated process on the current thread. */
void ParallelUContext::resume()
{
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
// What is my containing body?
unsigned long worker_id = __sync_fetch_and_add(&sysv_threads_working, 1);
// Store the number of my containing body in os-thread-specific area :
*/
void ParallelUContext::suspend()
{
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
/* determine the next context */
// Get the next soul to embody now:
smx_process_t next_work = (smx_process_t) xbt_parmap_next(sysv_parmap);
*/
void SIMIX_context_mod_init(void)
{
-#if defined(CONTEXT_THREADS) && !defined(HAVE_THREAD_LOCAL_STORAGE)
+#if defined(HAVE_THREAD_CONTEXTS) && !defined(HAVE_THREAD_LOCAL_STORAGE)
/* the __thread storage class is not available on this platform:
* use getspecific/setspecific instead to store the current context in each thread */
xbt_os_thread_key_create(&smx_current_context_key);
if (simgrid::simix::factory_initializer)
simix_global->context_factory = simgrid::simix::factory_initializer();
else { /* use the factory specified by --cfg=contexts/factory:value */
-#if defined(CONTEXT_THREADS)
+#if defined(HAVE_THREAD_CONTEXTS)
if (!strcmp(smx_context_factory_name, "thread"))
simix_global->context_factory = simgrid::simix::thread_factory();
#else
if (0);
#endif
-#ifdef CONTEXT_UCONTEXT
+#ifdef HAVE_UCONTEXT_CONTEXTS
else if (!strcmp(smx_context_factory_name, "ucontext"))
simix_global->context_factory = simgrid::simix::sysv_factory();
#endif
-#ifdef HAVE_RAWCTX
+#ifdef HAVE_RAW_CONTEXTS
else if (!strcmp(smx_context_factory_name, "raw"))
simix_global->context_factory = simgrid::simix::raw_factory();
#endif
-#ifdef HAVE_BOOST_CONTEXT
+#ifdef HAVE_BOOST_CONTEXTS
else if (!strcmp(smx_context_factory_name, "boost"))
simix_global->context_factory = simgrid::simix::boost_factory();
#endif
else {
XBT_ERROR("Invalid context factory specified. Valid factories on this machine:");
-#ifdef HAVE_RAWCTX
+#ifdef HAVE_RAW_CONTEXTS
XBT_ERROR(" raw: high performance context factory implemented specifically for SimGrid");
#else
XBT_ERROR(" (raw contexts were disabled at compilation time on this machine -- check configure logs for details)");
#endif
-#ifdef CONTEXT_UCONTEXT
+#ifdef HAVE_UCONTEXT_CONTEXTS
XBT_ERROR(" ucontext: classical system V contexts (implemented with makecontext, swapcontext and friends)");
#else
XBT_ERROR(" (ucontext was disabled at compilation time on this machine -- check configure logs for details)");
#endif
-#ifdef HAVE_BOOST_CONTEXT
+#ifdef HAVE_BOOST_CONTEXTS
XBT_ERROR(" boost: this uses the boost libraries context implementation");
#else
XBT_ERROR(" (boost was disabled at compilation time on this machine -- check configure logs for details. Did you install the libboost-context-dev package?)");
}
if (nb_threads > 1) {
-#ifndef CONTEXT_THREADS
+#ifndef HAVE_THREAD_CONTEXTS
THROWF(arg_error, 0, "The thread factory cannot be run in parallel");
#endif
}
{NULL, NULL, NULL} /* this array must be NULL terminated */
};
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
static xbt_parmap_t surf_parmap = NULL; /* parallel map on models */
#endif
future_evt_set = nullptr;
}
-#ifdef CONTEXT_THREADS
+#ifdef HAVE_THREAD_CONTEXTS
xbt_parmap_destroy(surf_parmap);
#endif
/* xbt_os_thread -- portability layer over the pthread API */
/* Used in RL to get win/lin portability, and in SG when CONTEXT_THREAD */
-/* in SG, when using CONTEXT_UCONTEXT, xbt_os_thread_stub is used instead */
+/* in SG, when using HAVE_UCONTEXT_CONTEXTS, xbt_os_thread_stub is used instead */
/* Copyright (c) 2007-2015. The SimGrid Team.
* All rights reserved. */
#include "src/xbt_modinter.h"
#include "xbt/sysdep.h"
#include "xbt/xbt_os_thread.h"
-#include "src/portable.h" /* CONTEXT_THREADS */
+#include "src/portable.h" /* HAVE_THREAD_CONTEXTS */
-#ifndef CONTEXT_THREADS
+#ifndef HAVE_THREAD_CONTEXTS
#ifndef WIN32
#ifdef HAVE_PTHREAD
/* xbt_threads is loaded in libsimgrid when they are used to implement the xbt_context.
endif()
# Boost context may not be available
-if (HAVE_BOOST_CONTEXT)
+if (HAVE_BOOST_CONTEXTS)
set(SIMIX_SRC
${SIMIX_SRC}
src/simix/BoostContext.hpp
src/context_sysv_config.h.in)
### depend of some variables setted upper
-# -->CONTEXT_THREADS CONTEXT_UCONTEXT
-if(${CONTEXT_THREADS}) #pthread
+# -->HAVE_THREAD_CONTEXTS HAVE_UCONTEXT_CONTEXTS
+if(${HAVE_THREAD_CONTEXTS}) #pthread
set(SURF_SRC
${SURF_SRC}
src/simix/ThreadContext.cpp
)
endif()
-if(${CONTEXT_THREADS}) #pthread
+if(${HAVE_THREAD_CONTEXTS}) #pthread
set(SURF_SRC
${SURF_SRC}
src/xbt/xbt_os_thread.c
)
endif()
-if(${CONTEXT_UCONTEXT}) #ucontext
+if(${HAVE_UCONTEXT_CONTEXTS}) #ucontext
set(SURF_SRC
${SURF_SRC}
src/simix/UContext.cpp
# Compute the dependencies of SimGrid
#####################################
set(SIMGRID_DEP "-lm")
-if (HAVE_BOOST_CONTEXT)
+if (HAVE_BOOST_CONTEXTS)
set(SIMGRID_DEP "${SIMGRID_DEP} ${Boost_CONTEXT_LIBRARY}")
endif()
-if(HAVE_PTHREAD AND ${CONTEXT_THREADS} AND NOT APPLE)
+if(HAVE_PTHREAD AND ${HAVE_THREAD_CONTEXTS} AND NOT APPLE)
# Clang on recent Mac OS X is not happy about -pthread.
SET(SIMGRID_DEP "${SIMGRID_DEP} -pthread")
endif()
message("HAVE_THREAD_LOCAL_STORAGE ...: ${HAVE_THREAD_LOCAL_STORAGE}")
message("HAVE_MMALLOC ................: ${HAVE_MMALLOC}")
message("")
- message("CONTEXT_THREADS .............: ${CONTEXT_THREADS}")
- message("CONTEXT_UCONTEXT ............: ${CONTEXT_UCONTEXT}")
+ message("HAVE_THREAD_CONTEXTS .............: ${HAVE_THREAD_CONTEXTS}")
+ message("HAVE_UCONTEXT_CONTEXTS ............: ${HAVE_UCONTEXT_CONTEXTS}")
message("______________________________________________________________________")
message("______________________________________________________________________ DEBUG END")
message("")
message(" Compile MPI testsuite .......: ${enable_smpi_MPICH3_testsuite}")
message(" Compile Smpi f77 ............: ${SMPI_FORTRAN}")
message(" Compile Smpi f90 ............: ${SMPI_FORTRAN}")
-message(" Compile Boost.Context support: ${HAVE_BOOST_CONTEXT}")
+message(" Compile Boost.Context support: ${HAVE_BOOST_CONTEXTS}")
message("")
message(" Maintainer mode .............: ${enable_maintainer_mode}")
message(" Documentation................: ${enable_documentation}")
LIST(REMOVE_AT ARGR 0)
ENDFOREACH()
FOREACH(FACTORY ${FACTORIES})
- if ((${FACTORY} STREQUAL "thread" AND CONTEXT_THREADS) OR
- (${FACTORY} STREQUAL "boost" AND HAVE_BOOST_CONTEXT) OR
- (${FACTORY} STREQUAL "raw" AND HAVE_RAWCTX) OR
- (${FACTORY} STREQUAL "ucontext" AND CONTEXT_UCONTEXT))
+ if ((${FACTORY} STREQUAL "thread" AND HAVE_THREAD_CONTEXTS) OR
+ (${FACTORY} STREQUAL "boost" AND HAVE_BOOST_CONTEXTS) OR
+ (${FACTORY} STREQUAL "raw" AND HAVE_RAW_CONTEXTS) OR
+ (${FACTORY} STREQUAL "ucontext" AND HAVE_UCONTEXT_CONTEXTS))
ADD_TESH("${NAME}-${FACTORY}" "--cfg" "contexts/factory:${FACTORY}" ${ARGR})
ENDIF()
ENDFOREACH()
ADD_TESH_FACTORIES(mc-bugged1 "ucontext;raw" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/mc bugged1.tesh)
ADD_TESH_FACTORIES(mc-bugged2 "ucontext;raw" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/mc bugged2.tesh)
- IF(CONTEXT_UCONTEXT AND PROCESSOR_x86_64) # liveness model-checking works only on 64bits (for now ...)
+ IF(HAVE_UCONTEXT_CONTEXTS AND PROCESSOR_x86_64) # liveness model-checking works only on 64bits (for now ...)
ADD_TESH(mc-bugged1-liveness-ucontext --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/mc bugged1_liveness.tesh)
ADD_TESH(mc-bugged1-liveness-ucontext-sparse --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/mc bugged1_liveness_sparse.tesh)
ADD_TESH(mc-bugged1-liveness-visited-ucontext --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/mc --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/mc bugged1_liveness_visited.tesh)
### SIMIX ###
# BEGIN TESH TESTS
- IF(HAVE_RAWCTX)
+ IF(HAVE_RAW_CONTEXTS)
ADD_TESH(tesh-simix-factory-default --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simix/check_defaults --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simix/check_defaults factory_raw.tesh)
- ELSEIF(CONTEXT_UCONTEXT)
+ ELSEIF(HAVE_UCONTEXT_CONTEXTS)
ADD_TESH(tesh-simix-factory-default --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simix/check_defaults --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simix/check_defaults factory_ucontext.tesh)
ELSE()
ADD_TESH(tesh-simix-factory-default --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simix/check_defaults --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simix/check_defaults factory_thread.tesh)
ENDIF()
- IF(CONTEXT_THREADS)
+ IF(HAVE_THREAD_CONTEXTS)
ADD_TESH(tesh-simix-factory-thread --cfg contexts/factory:thread --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simix/check_defaults --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simix/check_defaults factory_thread.tesh)
ENDIF()
- IF(HAVE_RAWCTX)
+ IF(HAVE_RAW_CONTEXTS)
ADD_TESH(tesh-simix-factory-raw --cfg contexts/factory:raw --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simix/check_defaults --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simix/check_defaults factory_raw.tesh)
ENDIF()
- IF(CONTEXT_UCONTEXT)
+ IF(HAVE_UCONTEXT_CONTEXTS)
ADD_TESH(tesh-simix-factory-ucontext --cfg contexts/factory:ucontext --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simix/check_defaults --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simix/check_defaults factory_ucontext.tesh)
ENDIF()
# END TESH TESTS
IF(WIN32 OR CMAKE_SYSTEM_NAME MATCHES "Darwin")
# These tests are known to fail on Windows and Mac OS X
# (the expected error message is not shown).
- IF(CONTEXT_THREADS)
+ IF(HAVE_THREAD_CONTEXTS)
SET_TESTS_PROPERTIES(stack-overflow-thread PROPERTIES WILL_FAIL true)
ENDIF()
- IF(CONTEXT_UCONTEXT)
+ IF(HAVE_UCONTEXT_CONTEXTS)
SET_TESTS_PROPERTIES(stack-overflow-ucontext PROPERTIES WILL_FAIL true)
ENDIF()
- IF(HAVE_RAWCTX)
+ IF(HAVE_RAW_CONTEXTS)
SET_TESTS_PROPERTIES(stack-overflow-raw PROPERTIES WILL_FAIL true)
ENDIF()
ENDIF()
ADD_TESH(tesh-smpi-clusters-types --cfg smpi/alltoall:mvapich2 --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/smpi/alltoall --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/alltoall clusters.tesh)
# END TESH TESTS
IF(enable_smpi_MPICH3_testsuite)
- IF(CONTEXT_THREADS)
+ IF(HAVE_THREAD_CONTEXTS)
ADD_TEST(test-smpi-mpich3-coll-thread ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist -execarg=--cfg=contexts/factory:thread -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION})
SET_TESTS_PROPERTIES(test-smpi-mpich3-coll-thread PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
ENDIF()
- IF(CONTEXT_UCONTEXT)
+ IF(HAVE_UCONTEXT_CONTEXTS)
ADD_TEST(test-smpi-mpich3-coll-ompi-ucontext ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist -execarg=--cfg=contexts/factory:ucontext -execarg=--cfg=smpi/coll_selector:ompi -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION} -execarg=--cfg=smpi/bcast:binomial_tree)
SET_TESTS_PROPERTIES(test-smpi-mpich3-coll-ompi-ucontext PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
ENDIF()
- IF(HAVE_RAWCTX)
+ IF(HAVE_RAW_CONTEXTS)
ADD_TEST(test-smpi-mpich3-coll-mpich-raw ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist -execarg=--cfg=contexts/factory:raw -execarg=--cfg=smpi/coll_selector:mpich -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION})
ADD_TEST(test-smpi-mpich3-coll-ompi-raw ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist -execarg=--cfg=contexts/factory:raw -execarg=--cfg=smpi/coll_selector:ompi -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION} -execarg=--cfg=smpi/bcast:binomial_tree)
ADD_TEST(test-smpi-mpich3-coll-mpich-raw ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist -execarg=--cfg=contexts/factory:raw -execarg=--cfg=smpi/coll_selector:mpich -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION})
ADD_TEST(test-smpi-mpich3-coll-impi-raw ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/coll ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/coll -tests=testlist -execarg=--cfg=contexts/factory:raw -execarg=--cfg=smpi/coll_selector:impi -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION})
SET_TESTS_PROPERTIES(test-smpi-mpich3-coll-mpich-raw test-smpi-mpich3-coll-ompi-raw test-smpi-mpich3-coll-mpich-raw test-smpi-mpich3-coll-mvapich2-raw test-smpi-mpich3-coll-impi-raw PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
ENDIF()
- IF(HAVE_RAWCTX)
+ IF(HAVE_RAW_CONTEXTS)
ADD_TEST(test-smpi-mpich3-attr-raw ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/attr ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/attr -tests=testlist -execarg=--cfg=contexts/factory:raw)
ADD_TEST(test-smpi-mpich3-comm-raw ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/comm ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/comm -tests=testlist -execarg=--cfg=contexts/factory:raw)
ADD_TEST(test-smpi-mpich3-init-raw ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/init ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/init -tests=testlist -execarg=--cfg=contexts/factory:raw)
ADD_TEST(test-smpi-mpich3-perf-raw ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/perf ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/perf -tests=testlist -execarg=--cfg=contexts/factory:raw -execarg=--cfg=smpi/running_power:-1)
SET_TESTS_PROPERTIES(test-smpi-mpich3-attr-raw test-smpi-mpich3-comm-raw test-smpi-mpich3-init-raw test-smpi-mpich3-datatype-raw test-smpi-mpich3-group-raw test-smpi-mpich3-pt2pt-raw test-smpi-mpich3-topo-raw test-smpi-mpich3-rma-raw test-smpi-mpich3-info-raw PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
ENDIF()
- IF(SMPI_FORTRAN AND CONTEXT_THREADS)
+ IF(SMPI_FORTRAN AND HAVE_THREAD_CONTEXTS)
ADD_TEST(test-smpi-mpich3-thread-f77 ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/f77/ ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f77/ -tests=testlist -execarg=--cfg=contexts/stack_size:8000 -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION})
SET_TESTS_PROPERTIES(test-smpi-mpich3-thread-f77 PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
ADD_TEST(test-smpi-mpich3-thread-f90 ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/f90/ ${PERL_EXECUTABLE} ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f90/ -tests=testlist -execarg=--cfg=smpi/privatize_global_variables:${HAVE_PRIVATIZATION})
foreach my $factory (split(';', $factories)) {
$close=0;
if( $factory =~ /^raw/) {
- print "${indent}if(HAVE_RAWCTX)\n";
+ print "${indent}if(HAVE_RAW_CONTEXTS)\n";
$close=1;
}elsif( $factory =~ /^boost/) {
- print "${indent}if(HAVE_BOOST_CONTEXT)\n";
+ print "${indent}if(HAVE_BOOST_CONTEXTS)\n";
$close=1;
}elsif( $factory =~ /^ucontext/) {
- print "${indent}if(CONTEXT_UCONTEXT)\n";
+ print "${indent}if(HAVE_UCONTEXT_CONTEXTS)\n";
$close=1;
}elsif( $factory =~ /^thread/) {
- print "${indent}if(CONTEXT_THREADS)\n";
+ print "${indent}if(HAVE_THREAD_CONTEXTS)\n";
$close=1;
}
print "${indent}ADD_TEST(NAME memcheck-$name_test-$factory-$count\n";
#cmakedefine __VA_COPY_USE_C99(d, s) @__VA_COPY_USE_C99@
/* Define if xbt contexts are based on our threads implementation or not */
-#cmakedefine CONTEXT_THREADS @CONTEXT_THREADS@
+#cmakedefine HAVE_THREAD_CONTEXTS @HAVE_THREAD_CONTEXTS@
/* Define to 1 if you have the <ucontext.h> header file. */
#cmakedefine HAVE_UCONTEXT_H @HAVE_UCONTEXT_H@
/* Define if xbt contexts are based on ucontext or not */
-#cmakedefine CONTEXT_UCONTEXT @CONTEXT_UCONTEXT@
+#cmakedefine HAVE_UCONTEXT_CONTEXTS @HAVE_UCONTEXT_CONTEXTS@
/* Predefined possible va_copy() implementation (id: CPP) */
#cmakedefine __VA_COPY_USE_CPP(d, s) @__VA_COPY_USE_CPP@
#cmakedefine PROCESSOR_i686 @PROCESSOR_i686@
#cmakedefine PROCESSOR_x86_64 @PROCESSOR_x86_64@
#cmakedefine CMAKE_SYSTEM_PROCESSOR @CMAKE_SYSTEM_PROCESSOR@
-#cmakedefine HAVE_RAWCTX @HAVE_RAWCTX@
-#cmakedefine HAVE_BOOST_CONTEXT @HAVE_BOOST_CONTEXT@
+#cmakedefine HAVE_RAW_CONTEXTS @HAVE_RAW_CONTEXTS@
+#cmakedefine HAVE_BOOST_CONTEXTS @HAVE_BOOST_CONTEXTS@
/* Define to 1 if you have the GNU ld library */
#cmakedefine HAVE_GNU_LD @HAVE_GNU_LD@