blob: 0022ce37890b4422259b7fd5e28acc1e6a91de0e [file] [log] [blame]
#!/bin/bash
#
# Takes a list of install prefixes and tests the go source under the current directory
# against the proton install in each prefix.
#
# NOTE: This script will fail if it finds proton headers or libraries installed in standard
# places or on the existing paths, to avoid possible confusion.
#
for VAR in LD_LIBRARY_PATH LIBRARY_PATH C_INCLUDE_PATH; do
declare OLD_${VAR}=${!VAR};
done
prefix() {
prefix=$1
export LD_LIBRARY_PATH="$prefix/lib64:$prefix/lib:$OLD_LD_LIBRARY_PATH"
export LIBRARY_PATH="$prefix/lib64:$prefix/lib:$OLD_LIBRARY_PATH"
export C_INCLUDE_PATH="$prefix/include:$OLD_C_INCLUDE_PATH"
}
TEMP=$(mktemp -d)
trap "rm -rf $TEMP" EXIT
set -o pipefail
cat > $TEMP/test.c <<EOF
#include <proton/connection.h>
int main(int c, char **a) { return 0; }
EOF
cc $TEMP/test.c 2> /dev/null && {
echo "cc found proton in include path"; cc -E | grep proton/connection.h | head -n1; exit 1; } 1>&2
cat > $TEMP/test.c <<EOF
int main(int c, char **a) { return 0; }
EOF
cc -lqpid-proton $TEMPC 2>/dev/null && { echo "cc found proton in library path" 1>&2 ; exit 1; }
for P in "$@"; do
(
case $P in
/*) ;;
*) P=$PWD/$P;;
esac
test -d $P || { echo "no such directory: $P"; continue; }
echo ==== $P
prefix $P
export GOPATH=$PWD
git clean -dfx
go test qpid.apache.org/...
)
done