diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 962d1e1266..f2078303f7 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -440,13 +440,14 @@ if(LINUX ) endif() - if(NOT UMF_DISABLE_HWLOC) + if(EXAMPLES AND NOT UMF_DISABLE_HWLOC) add_test( NAME umf_standalone_examples COMMAND ${UMF_CMAKE_SOURCE_DIR}/test/test_examples.sh ${UMF_CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} - ${CMAKE_INSTALL_PREFIX} ${EXAMPLES} + ${CMAKE_CURRENT_BINARY_DIR}/umf_standalone_examples/install-dir + "${CMAKE_INSTALL_PREFIX}" ${EXAMPLES} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) endif() endif() diff --git a/test/test_examples.sh b/test/test_examples.sh index 9331b1d061..8941f4e8a2 100755 --- a/test/test_examples.sh +++ b/test/test_examples.sh @@ -5,40 +5,42 @@ set -e -WORKSPACE=$1 +SOURCE_DIR=$1 BUILD_DIR=$2 INSTALL_DIR=$3 +CMAKE_INSTALL_PREFIX=$4 echo "Running: $0 $*" function print_usage() { echo "$(basename $0) - test all examples standalone" - echo "Usage: $(basename $0) " + echo "Usage: $(basename $0) " } -if [ "$3" == "" ]; then +if [ "$5" == "" ]; then print_usage echo -e "Error: too few arguments\n" exit 1 fi -if [ "$4" == "" ]; then - print_usage - echo "No examples to run!" - exit 0 -fi - -if [ ! -f $WORKSPACE/README.md ]; then - echo -e "error: incorrect : $WORKSPACE\n" +if [ ! -f $SOURCE_DIR/README.md ]; then + echo -e "error: incorrect : $SOURCE_DIR\n" print_usage exit 1 fi -WORKSPACE=$(realpath $WORKSPACE) +mkdir -p ${INSTALL_DIR}/${CMAKE_INSTALL_PREFIX} + +SOURCE_DIR=$(realpath $SOURCE_DIR) BUILD_DIR=$(realpath $BUILD_DIR) INSTALL_DIR=$(realpath $INSTALL_DIR) -shift 3 +echo "SOURCE_DIR=$SOURCE_DIR" +echo "BUILD_DIR=$BUILD_DIR" +echo "CMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX" +echo "INSTALL_DIR=$INSTALL_DIR" + +shift 4 EXAMPLES="$*" echo "Examples to run: $EXAMPLES" echo @@ -46,12 +48,13 @@ echo cd ${BUILD_DIR} echo "DIR=$(pwd)" +echo "Installing UMF into the directory: ${INSTALL_DIR}/${CMAKE_INSTALL_PREFIX}" set -x -make -j$(nproc) install +make DESTDIR=$INSTALL_DIR -j$(nproc) install set +x for ex in $EXAMPLES; do - SRC_DIR="${WORKSPACE}/examples/$ex" + SRC_DIR="${SOURCE_DIR}/examples/$ex" BLD_DIR="${BUILD_DIR}/examples-standalone/$ex" if [ ! -d $SRC_DIR ]; then @@ -67,7 +70,7 @@ for ex in $EXAMPLES; do rm -rf $BLD_DIR mkdir -p $BLD_DIR cd $BLD_DIR - CMAKE_PREFIX_PATH="$INSTALL_DIR" cmake $SRC_DIR + CMAKE_PREFIX_PATH="${INSTALL_DIR}/${CMAKE_INSTALL_PREFIX}" cmake $SRC_DIR make -j$(nproc) ctest --output-on-failure set +x