Blame tests/run-test.sh

Packit 2997f0
#!/usr/bin/env bash
Packit 2997f0
#
Packit 2997f0
Packit 2997f0
RED='\033[31m'
Packit 2997f0
GREEN='\033[32m'
Packit 2997f0
CYAN='\033[36m'
Packit 2997f0
CCLR='\033[0m'
Packit 2997f0
Packit 2997f0
if [ -z "$1" ]; then
Packit 2997f0
    echo "Usage: $0 [-..] <execfile> [modes..]"
Packit 2997f0
    echo ""
Packit 2997f0
    echo "  Modes: bare valgrind helgrind drd gdb lldb bash"
Packit 2997f0
    echo "  Options:"
Packit 2997f0
    echo "   -..    - Command arguments (pass thru)"
Packit 2997f0
    exit 1
Packit 2997f0
fi
Packit 2997f0
Packit 2997f0
ARGS=
Packit 2997f0
Packit 2997f0
while [[ $1 == -* ]]; do
Packit 2997f0
    ARGS="$ARGS $1"
Packit 2997f0
    shift
Packit 2997f0
done
Packit 2997f0
Packit 2997f0
TEST=$1
Packit 2997f0
if [ ! -z "$2" ]; then
Packit 2997f0
    MODES=$2
Packit 2997f0
else
Packit 2997f0
    MODES="bare"
Packit 2997f0
    # Enable valgrind:
Packit 2997f0
    #MODES="bare valgrind"
Packit 2997f0
fi
Packit 2997f0
Packit 2997f0
FAILED=0
Packit 2997f0
Packit 2997f0
export RDKAFKA_GITVER="$(git rev-parse --short HEAD)@$(git symbolic-ref -q --short HEAD)"
Packit 2997f0
Packit 2997f0
# Enable valgrind suppressions for false positives
Packit 2997f0
SUPP="--suppressions=librdkafka.suppressions"
Packit 2997f0
Packit 2997f0
# Uncomment to generate valgrind suppressions
Packit 2997f0
#GEN_SUPP="--gen-suppressions=yes"
Packit 2997f0
Packit 2997f0
# Common valgrind arguments
Packit 2997f0
VALGRIND_ARGS="--error-exitcode=3"
Packit 2997f0
Packit 2997f0
# Enable vgdb on valgrind errors.
Packit 2997f0
#VALGRIND_ARGS="$VALGRIND_ARGS --vgdb-error=1"
Packit 2997f0
Packit 2997f0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../src:../src-cpp
Packit 2997f0
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:../src:../src-cpp
Packit 2997f0
Packit 2997f0
echo -e "${CYAN}############## $TEST ################${CCLR}"
Packit 2997f0
Packit 2997f0
for mode in $MODES; do
Packit 2997f0
    echo -e "${CYAN}### Running test $TEST in $mode mode ###${CCLR}"
Packit 2997f0
    export TEST_MODE=$mode
Packit 2997f0
    case "$mode" in
Packit 2997f0
	valgrind)
Packit 2997f0
	    valgrind $VALGRIND_ARGS --leak-check=full --show-leak-kinds=all \
Packit 2997f0
		     --errors-for-leak-kinds=all \
Packit 2997f0
		     --track-origins=yes \
Packit 2997f0
		     $SUPP $GEN_SUPP \
Packit 2997f0
		$TEST $ARGS
Packit 2997f0
	    RET=$?
Packit 2997f0
	    ;;
Packit 2997f0
	helgrind)
Packit 2997f0
	    valgrind $VALGRIND_ARGS --tool=helgrind \
Packit 2997f0
                     --sim-hints=no-nptl-pthread-stackcache \
Packit 2997f0
                     $SUPP $GEN_SUPP \
Packit 2997f0
		$TEST	$ARGS
Packit 2997f0
	    RET=$?
Packit 2997f0
	    ;;
Packit 2997f0
	drd)
Packit 2997f0
	    valgrind $VALGRIND_ARGS --tool=drd $SUPP $GEN_SUPP \
Packit 2997f0
		$TEST	$ARGS
Packit 2997f0
	    RET=$?
Packit 2997f0
	    ;;
Packit 2997f0
        gdb)
Packit 2997f0
            if [[ -f gdb.run ]]; then
Packit 2997f0
                gdb -x gdb.run $ARGS $TEST
Packit 2997f0
            else
Packit 2997f0
                gdb $ARGS $TEST
Packit 2997f0
            fi
Packit 2997f0
            RET=$?
Packit 2997f0
            ;;
Packit 2997f0
	bare)
Packit 2997f0
	    $TEST $ARGS
Packit 2997f0
	    RET=$?
Packit 2997f0
	    ;;
Packit 2997f0
        lldb)
Packit 2997f0
            lldb -b -o "process launch --environment DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH" -- $TEST $ARGS
Packit 2997f0
            RET=$?
Packit 2997f0
            ;;
Packit 2997f0
	bash)
Packit 2997f0
	    PS1="[run-test.sh] $PS1" bash
Packit 2997f0
	    RET=$?
Packit 2997f0
	    ;;
Packit 2997f0
	*)
Packit 2997f0
	    echo -e "${RED}### Unknown mode $mode for $TEST ###${CCLR}"
Packit 2997f0
	    RET=1
Packit 2997f0
	    ;;
Packit 2997f0
    esac
Packit 2997f0
Packit 2997f0
    if [ $RET -gt 0 ]; then
Packit 2997f0
	echo -e "${RED}###"
Packit 2997f0
	echo -e "### Test $TEST in $mode mode FAILED! ###"
Packit 2997f0
	echo -e "###${CCLR}"
Packit 2997f0
	FAILED=1
Packit 2997f0
    else
Packit 2997f0
	echo -e "${GREEN}###"
Packit 2997f0
	echo -e "### $Test $TEST in $mode mode PASSED! ###"
Packit 2997f0
	echo -e "###${CCLR}"
Packit 2997f0
    fi
Packit 2997f0
done
Packit 2997f0
Packit 2997f0
exit $FAILED
Packit 2997f0