Update geode-native integration test jobs to run in parallel
[infra/cicd.git] / jjb / geode-native / apache-geode-native-test / integrationtest.sh
index 91d8ecf585bfc5baad6073f5f4521873ae999098..f4ed1153b4b80347b346322f310ffab4a32cd874 100755 (executable)
@@ -21,15 +21,19 @@ set -o errexit
 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}"