mirror of
https://github.com/nikdoof/vsphere-influxdb-go.git
synced 2025-12-19 05:29:21 +00:00
add vendoring with go dep
This commit is contained in:
206
vendor/github.com/influxdata/influxdb/test.sh
generated
vendored
Executable file
206
vendor/github.com/influxdata/influxdb/test.sh
generated
vendored
Executable file
@@ -0,0 +1,206 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This is the InfluxDB test script.
|
||||
# This script can run tests in different environments.
|
||||
#
|
||||
# Usage: ./test.sh <environment_index>
|
||||
# Corresponding environments for environment_index:
|
||||
# 0: normal 64bit tests
|
||||
# 1: race enabled 64bit tests
|
||||
# 3: normal 32bit tests
|
||||
# save: build the docker images and save them to DOCKER_SAVE_DIR. Do not run tests.
|
||||
# count: print the number of test environments
|
||||
# *: to run all tests in parallel containers
|
||||
#
|
||||
# Logs from the test runs will be saved in OUTPUT_DIR, which defaults to ./test-logs
|
||||
#
|
||||
|
||||
# Get dir of script and make it is our working directory.
|
||||
DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
|
||||
cd $DIR
|
||||
|
||||
ENVIRONMENT_INDEX=$1
|
||||
# Set the default OUTPUT_DIR
|
||||
OUTPUT_DIR=${OUTPUT_DIR-./test-logs}
|
||||
# Set the default DOCKER_SAVE_DIR
|
||||
DOCKER_SAVE_DIR=${DOCKER_SAVE_DIR-$HOME/docker}
|
||||
# Set default parallelism
|
||||
PARALLELISM=${PARALLELISM-1}
|
||||
# Set default timeout
|
||||
TIMEOUT=${TIMEOUT-960s}
|
||||
|
||||
# Default to deleteing the container
|
||||
DOCKER_RM=${DOCKER_RM-true}
|
||||
|
||||
# Update this value if you add a new test environment.
|
||||
ENV_COUNT=3
|
||||
|
||||
# Default return code 0
|
||||
rc=0
|
||||
|
||||
# Executes the given statement, and exits if the command returns a non-zero code.
|
||||
function exit_if_fail {
|
||||
command=$@
|
||||
echo "Executing '$command'"
|
||||
$command
|
||||
rc=$?
|
||||
if [ $rc -ne 0 ]; then
|
||||
echo "'$command' returned $rc."
|
||||
exit $rc
|
||||
fi
|
||||
}
|
||||
|
||||
# Convert dockerfile name to valid docker image tag name.
|
||||
function filename2imagename {
|
||||
echo ${1/Dockerfile/influxdb}
|
||||
}
|
||||
|
||||
# Run a test in a docker container
|
||||
# Usage: run_test_docker <Dockerfile> <env_name>
|
||||
function run_test_docker {
|
||||
local dockerfile=$1
|
||||
local imagename=$(filename2imagename "$dockerfile")
|
||||
shift
|
||||
local name=$1
|
||||
shift
|
||||
local logfile="$OUTPUT_DIR/${name}.log"
|
||||
|
||||
build_docker_image "$dockerfile" "$imagename"
|
||||
echo "Running test in docker $name with args $@"
|
||||
|
||||
docker run \
|
||||
--rm=$DOCKER_RM \
|
||||
-v "$DIR:/root/go/src/github.com/influxdata/influxdb" \
|
||||
-e "INFLUXDB_DATA_ENGINE=$INFLUXDB_DATA_ENGINE" \
|
||||
-e "GORACE=$GORACE" \
|
||||
-e "GO_CHECKOUT=$GO_CHECKOUT" \
|
||||
-e "AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID" \
|
||||
-e "AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY" \
|
||||
"$imagename" \
|
||||
"--parallel=$PARALLELISM" \
|
||||
"--timeout=$TIMEOUT" \
|
||||
"$@" \
|
||||
2>&1 | tee "$logfile"
|
||||
return "${PIPESTATUS[0]}"
|
||||
|
||||
}
|
||||
|
||||
# Build the docker image defined by given dockerfile.
|
||||
function build_docker_image {
|
||||
local dockerfile=$1
|
||||
local imagename=$2
|
||||
|
||||
echo "Building docker image $imagename"
|
||||
exit_if_fail docker build -f "$dockerfile" -t "$imagename" .
|
||||
}
|
||||
|
||||
|
||||
# Saves a docker image to $DOCKER_SAVE_DIR
|
||||
function save_docker_image {
|
||||
local dockerfile=$1
|
||||
local imagename=$(filename2imagename "$dockerfile")
|
||||
local imagefile="$DOCKER_SAVE_DIR/${imagename}.tar.gz"
|
||||
|
||||
if [ ! -d "$DOCKER_SAVE_DIR" ]
|
||||
then
|
||||
mkdir -p "$DOCKER_SAVE_DIR"
|
||||
fi
|
||||
|
||||
if [[ -e "$imagefile" ]]
|
||||
then
|
||||
zcat $imagefile | docker load
|
||||
fi
|
||||
imageid=$(docker images -q --no-trunc "$imagename")
|
||||
build_docker_image "$dockerfile" "$imagename"
|
||||
newimageid=$(docker images -q --no-trunc "$imagename")
|
||||
rc=0
|
||||
if [ "$imageid" != "$newimageid" ]
|
||||
then
|
||||
docker save "$imagename" | gzip > "$imagefile"
|
||||
rc="${PIPESTATUS[0]}"
|
||||
fi
|
||||
return "$rc"
|
||||
}
|
||||
|
||||
if [ ! -d "$OUTPUT_DIR" ]
|
||||
then
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
fi
|
||||
|
||||
# Run the tests.
|
||||
case $ENVIRONMENT_INDEX in
|
||||
0)
|
||||
# 64 bit tests
|
||||
run_test_docker Dockerfile_build_ubuntu64 test_64bit --test --junit-report
|
||||
rc=$?
|
||||
;;
|
||||
1)
|
||||
# 64 bit race tests
|
||||
GORACE="halt_on_error=1"
|
||||
run_test_docker Dockerfile_build_ubuntu64 test_64bit_race --test --junit-report --race
|
||||
rc=$?
|
||||
;;
|
||||
2)
|
||||
# 32 bit tests
|
||||
run_test_docker Dockerfile_build_ubuntu32 test_32bit --test --junit-report --arch=i386
|
||||
rc=$?
|
||||
;;
|
||||
"save")
|
||||
# Save docker images for every Dockerfile_build* file.
|
||||
# Useful for creating an external cache.
|
||||
pids=()
|
||||
for d in Dockerfile_build*
|
||||
do
|
||||
echo "Building and saving $d ..."
|
||||
save_docker_image "$d" > $OUTPUT_DIR/${d}.log 2>&1 &
|
||||
pids+=($!)
|
||||
done
|
||||
echo "Waiting..."
|
||||
# Wait for all saves to finish
|
||||
for pid in "${pids[@]}"
|
||||
do
|
||||
wait $pid
|
||||
rc=$(($? + $rc))
|
||||
done
|
||||
# Check if all saves passed
|
||||
if [ $rc -eq 0 ]
|
||||
then
|
||||
echo "All saves succeeded"
|
||||
else
|
||||
echo "Some saves failed, check logs in $OUTPUT_DIR"
|
||||
fi
|
||||
;;
|
||||
"count")
|
||||
echo $ENV_COUNT
|
||||
;;
|
||||
*)
|
||||
echo "No individual test environment specified running tests for all $ENV_COUNT environments."
|
||||
# Run all test environments
|
||||
pids=()
|
||||
for t in $(seq 0 "$(($ENV_COUNT - 1))")
|
||||
do
|
||||
$0 $t 2>&1 > /dev/null &
|
||||
# add PID to list
|
||||
pids+=($!)
|
||||
done
|
||||
|
||||
echo "Started all tests. Follow logs in ${OUTPUT_DIR}. Waiting..."
|
||||
|
||||
# Wait for all tests to finish
|
||||
for pid in "${pids[@]}"
|
||||
do
|
||||
wait $pid
|
||||
rc=$(($? + $rc))
|
||||
done
|
||||
|
||||
# Check if all tests passed
|
||||
if [ $rc -eq 0 ]
|
||||
then
|
||||
echo "All test have passed"
|
||||
else
|
||||
echo "Some tests failed check logs in $OUTPUT_DIR for results"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
exit $rc
|
||||
Reference in New Issue
Block a user