Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
129 changes: 17 additions & 112 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@ sudo: false
cache:
apt: true
directories:
- $HOME/.cache/cmake
- $HOME/.cache/boost
- $HOME/.cache/zmq
- $HOME/.cache/grpc
- $HOME/.cache/protobuf
- $HOME/.cache/spack

addons:
apt:
Expand All @@ -19,25 +15,17 @@ addons:
- tree
- gcc-6
- g++-6 # also possible: g++5.2 or g++-6
- clang-3.5
- openmpi-bin
- libopenmpi-dev
- gfortran-6

env:
global:
- CMAKE_ROOT: $HOME/.cache/cmake
- BOOST_ROOT: $HOME/.cache/boost
- ZMQ_ROOT: $HOME/.cache/zmq
- GRPC_ROOT: $HOME/.cache/grpc
- PROTOBUF_ROOT: $HOME/.cache/protobuf
- BOOST_LIBRARY_DIR: $HOME/.cache/boost
- BOOST_MIN: 106100 # careful: hard coded below
- GRAYBAT_ROOT: $TRAVIS_BUILD_DIR
- SPACK_DIR: $HOME/.cache/spack
- SPACK_HZDR_DIR: $HOME/spack-repo
matrix:
- COMPILER=gcc STRATEGY=""

before_install:
- mkdir -p $HOME/build
- export CMAKE_FLAGS="-DCMAKE_CXX_FLAGS=\"-Werror\""
- if [ "$COMPILER" == "gcc" ]; then
echo "Using g++-6";
Expand All @@ -54,105 +42,22 @@ before_install:
- $CC --version

install:
- echo "Install stage"
- tree -L 3 $SPACK_DIR
- rm -fr $SPACK_DIR
#############################################################################
# CMAKE #
# SPACK #
#############################################################################
- export PATH=$CMAKE_ROOT/bin:$PATH
- CMAKE_33_FOUND=$(cmake --version | grep " 3\.3\." >/dev/null && { echo 0; } || { echo 1; })
- if [ $CMAKE_33_FOUND -ne 0 ]; then
mkdir -p $CMAKE_ROOT &&
cd $CMAKE_ROOT &&
travis_retry wget --no-check-certificate http://www.cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz &&
tar -xzf cmake-3.3.2-Linux-x86_64.tar.gz --overwrite &&
mv -f cmake-3.3.2-Linux-x86_64/* . &&
rm -rf cmake-3.3.2-Linux-x86_64.tar.gz cmake-3.3.2-Linux-x86_64 &&
cd -;
- if [ ! -d "$SPACK_DIR" ] ; then
git clone https://github.com/LLNL/spack.git $SPACK_DIR;
fi
- cmake --version
#############################################################################
# BOOST #
#############################################################################
- export CMAKE_PREFIX_PATH=$BOOST_ROOT:$CMAKE_PREFIX_PATH
# cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=CXX -DMODE=EXIST
- echo -e "#include <boost/version.hpp>\n#include <iostream>\nint main() { std::cout << BOOST_VERSION << std::endl; return 0; }"
| $CXX -I$BOOST_ROOT/include -x c++ - >/dev/null || { echo 0; }
- ls $BOOST_ROOT
- BOOST_FOUND=$([ $(./a.out) -ge $BOOST_MIN ] && { echo 0; } || { echo 1; })
- if [ $BOOST_FOUND -ne 0 ]; then
mkdir -p $BOOST_ROOT &&
cd $BOOST_ROOT &&
travis_retry wget --no-check-certificate -O boost.tar.bz2 http://sourceforge.net/projects/boost/files/boost/1.61.0/boost_1_61_0.tar.bz2/download &&
tar -xjf boost.tar.bz2 --overwrite &&
cd boost_1_61_0 &&
echo "using gcc "":"" 6 "":"" /usr/bin/g++-6 ; " >> tools/build/src/user-config.jam &&
./bootstrap.sh toolset=gcc-6 --with-libraries=filesystem,mpi,program_options,system,test,serialization --prefix=$BOOST_ROOT &&
echo "using mpi ;" >> tools/build/src/user-config.jam &&
./b2 -j2 -target=shared,static &&
./b2 install &&
rm -rf boost.tar.bz2 boost_1_61_0 &&
cd $HOME;
fi
#############################################################################
# ZMQ #
#############################################################################
- export CMAKE_PREFIX_PATH=$ZMQ_ROOT:$CMAKE_PREFIX_PATH
- echo $CMAKE_PREFIX_PATH
- ls $ZMQ_ROOT
- if [ ! "$(ls -A $ZMQ_ROOT)" ]; then
cd /tmp/ &&
travis_retry git clone https://github.com/zeromq/libzmq.git&&
travis_retry git clone https://github.com/zeromq/cppzmq.git;
cd /tmp/libzmq/ &&
./autogen.sh &&
mkdir -p $ZMQ_ROOT &&
./configure --prefix=$ZMQ_ROOT &&
make &&
make install &&
cp /tmp/cppzmq/zmq.hpp $ZMQ_ROOT/include/ &&
cp /tmp/cppzmq/zmq_addon.hpp $ZMQ_ROOT/include/;
else
echo "ZeroMQ directory already exists";
fi
#############################################################################
# PROTOBUF
#############################################################################
- export CMAKE_PREFIX_PATH=$PROTOBUF_ROOT:$CMAKE_PREFIX_PATH
- echo $CMAKE_PREFIX_PATH
- tree $PROTOBUF_ROOT
- if [ ! "$(ls -A $PROTOBUF_ROOT)" ]; then
cd /tmp/;
travis_retry git clone https://github.com/google/protobuf.git;
cd /tmp/protobuf/;
./autogen.sh;
mkdir -p $PROTOBUF_ROOT;
./configure --prefix=$PROTOBUF_ROOT;
make check;
make install;
else
echo "Protobuf directory already exists";
fi
#############################################################################
# GRPC #
#############################################################################
- export CMAKE_PREFIX_PATH=$GRPC_ROOT:$CMAKE_PREFIX_PATH
- echo $CMAKE_PREFIX_PATH
- tree $GRPC_ROOT
- if [ ! "$(ls -A $GRPC_ROOT)" ]; then
cd /tmp/;
travis_retry git clone -b $(curl -L http://grpc.io/release) https://github.com/grpc/grpc;
cd /tmp/grpc/;
git submodule update --init;
mkdir -p $GRPC_ROOT;
make prefix=$GRPC_ROOT install;
else
echo "Grpc directory already exists";
- if [ ! -d "$SPACK_HZDR_DIR" ] ; then
git clone https://github.com/ComputationalRadiationPhysics/spack-repo.git $SPACK_HZDR_DIR;
fi
- $SPACK_DIR/bin/spack repo add $SPACK_HZDR_DIR || true
- travis_wait 50 $SPACK_DIR/bin/spack install graybat@develop +mpi +zeromq
- tree -L 3 $SPACK_DIR
- tree -L 3 $SPACK_HZDR_DIR

script:
- cd $HOME/build
- cmake $CMAKE_FLAGS $GRAYBAT_ROOT
- make check
- make signaling
- ./signaling&
- ctest --output-on-failure
- killall signaling
- echo "Script state"
19 changes: 12 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -90,13 +90,18 @@ add_executable(benchmark ${BENCHMARKS} ${graybat_GENERATED_FILES})
target_link_libraries(benchmark ${LIBS})

# Test cases
file(GLOB INTEGRATION_TESTS test/integration/*.cpp)
add_executable(check ${INTEGRATION_TESTS} ${graybat_GENERATED_FILES})
target_compile_definitions(check PRIVATE ${graybat_DEFINITIONS})
target_link_libraries(check ${LIBS})
add_test(graybat_check_build "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target check)
add_test(graybat_test_run_2_peers mpiexec -n 2 check )
set_tests_properties(graybat_test_run_2_peers PROPERTIES DEPENDS graybat_check_build)
if(graybat_BMPI_CP_ENABLED)
file(GLOB INTEGRATION_TESTS test/integration/*.cpp)
add_executable(check ${INTEGRATION_TESTS} ${graybat_GENERATED_FILES})
target_compile_definitions(check PRIVATE ${graybat_DEFINITIONS})
target_link_libraries(check ${LIBS})
if(NOT graybat_ZMQ_CP_ENABLED)
add_test(graybat_check_build "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target check)
add_test(graybat_test_run_2_peers
${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} check ${MPIEXEC_POSTFLAGS})
set_tests_properties(graybat_test_run_2_peers PROPERTIES DEPENDS graybat_check_build)
endif()
endif()

file(GLOB UNIT_TESTS test/unit/main.cpp test/unit/*Tests.cpp)
add_executable(unit_tests ${UNIT_TESTS} ${graybat_GENERATED_FILES})
Expand Down