influxdb/scripts/ci/run-prebuilt-tests.sh

53 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -exo pipefail
function test_package () {
local -r pkg="$1" bin_dir="$2" result_dir="$3"
local -r test_file="${bin_dir}/${pkg}.test"
if [ ! -f "$test_file" ]; then
return
fi
out_dir="${result_dir}/${pkg}"
mkdir -p "${out_dir}"
# Run test files from within their original packages so any relative references
# to data files resolve properly.
local source_dir="${pkg##github.com/influxdata/influxdb/v2}"
source_dir="${source_dir##/}"
if [ -z "$source_dir" ]; then
source_dir="."
fi
(
set +e
cd "$source_dir"
GOVERSION="$(cat ${bin_dir}/go.version)" "${bin_dir}/gotestsum" --junitfile "${out_dir}/report.xml" --raw-command -- \
"${bin_dir}/test2json" -t -p "$pkg" "$test_file" -test.v
if [ $? != 0 ]; then
echo 1 > "${result_dir}/rc"
fi
)
}
function main () {
if [[ $# != 2 ]]; then
>&2 echo Usage: $0 '<test-bin-dir>' '<result-dir>'
exit 1
fi
local -r bin_dir="$1" result_dir="$2"
mkdir -p "$result_dir"
local -r test_packages="$(cat "${bin_dir}/tests.list" | circleci tests split --split-by=timings --timings-type=classname)"
echo 0 > "${result_dir}/rc"
for pkg in ${test_packages[@]}; do
test_package "$pkg" "$bin_dir" "$result_dir"
done
exit $(cat "${result_dir}/rc")
}
main ${@}