set -o pipefail
#set -o xtrace
-GEODE_NATIVE_DIR="$(pwd)/geode-native"
+GEODE_NATIVE_DIR="${WORKSPACE}/geode-native"
SOURCE_DIR="/geode-native"
-DOCKER_ARGS="--volume=${GEODE_NATIVE_DIR}:${SOURCE_DIR}"
+CTEST_TIMEOUT=2000
+CTEST_JOBS=$(( $(nproc) / 4 ))
+CTEST_ARGS="--output-on-failure --repeat until-pass:4 --schedule-random"
+
+DOCKER_ARGS="--rm --volume=${GEODE_NATIVE_DIR}:${SOURCE_DIR}\
+ -e LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libSegFault.so"
COMMAND="echo -e '\n*** Build ***\n' && mkdir build && cd build &&\
- cmake ${SOURCE_DIR} -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DCMAKE_CXX_CLANG_TIDY=clang-tidy &&\
- cmake --build . -- -j${JOBS} && echo -e '\n*** Old Integration Tests ***\n' &&\
- cd ${SOURCE_DIR}/build/cppcache/integration-test && ctest --timeout 2000 -L STABLE -C Release -j1 &&\
- echo -e '\n*** New Integration Tests ***\n' &&\
- cd ${SOURCE_DIR}/build/cppcache/integration/test && ctest -j1"
+ cmake ${SOURCE_DIR} -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DCMAKE_CXX_CLANG_TIDY=clang-tidy &&\
+ cmake --build . -- -j${JOBS} && echo -e '\n*** Old Integration Tests ***\n' &&\
+ cd /build/cppcache/integration-test &&\
+ ctest -L STABLE -C Release -j${CTEST_JOBS} --timeout ${CTEST_TIMEOUT} ${CTEST_ARGS}"
docker run ${DOCKER_ARGS} "${GEODE_NATIVE_DOCKER_IMAGE}" bash -c "${COMMAND}"