Files
dolthub--doltgresql/testing/bats/setup/common.bash
T
2026-07-13 12:32:25 +08:00

73 lines
1.9 KiB
Bash

load setup/windows-compat
load setup/query-server-common
if [ -z "$BATS_TMPDIR" ]; then
export BATS_TMPDIR=$HOME/batstmp/
mkdir $BATS_TMPDIR
fi
nativebatsdir() { echo `nativepath $BATS_TEST_DIRNAME/$1`; }
batshelper() { echo `nativebatsdir helper/$1`; }
setup_common() {
psql --version
export PATH=$PATH:~/go/bin
cd $BATS_TMPDIR
# remove directory if exists
# reruns recycle pids
rm -rf "dolt-repo-$$"
# Append the directory name with the pid of the calling process so
# multiple tests can be run in parallel on the same machine
mkdir "dolt-repo-$$"
cd "dolt-repo-$$"
nativevar DOLTGRES_DATA_DIR "$(pwd)" /p
if [ -z "$DOLT_TEST_RETRIES" ]; then
export BATS_TEST_RETRIES="$DOLT_TEST_RETRIES"
fi
}
teardown_common() {
# rm -rf can fail with a "directory not empty" error in some cases. This seems to be a misleading
# error message; the real error is that a file is still in use. Instead of waiting longer for
# any processes to finish, we just ignore any error removing temp files and use 'true' as the last
# command in this function to ensure that teardown_common doesn't fail a test just because we
# couldn't delete any temporary test files.
stop_sql_server
rm -rf "$BATS_TMPDIR/dolt-repo-$$"
true
}
query_server() {
nativevar PGPASSWORD "password" /w
psql -U "${SQL_USER:-postgres}" -h localhost -p $PORT "$@" postgres
}
query_server_for_db() {
nativevar PGPASSWORD "password" /w
local db_name=${1:-postgres}
shift
psql -U "${SQL_USER:-postgres}" -h localhost -p $PORT "$@" $db_name
}
log_status_eq() {
if ! [ "$status" -eq $1 ]; then
echo "status: expected $1, received $status"
printf "output:\n$output"
exit 1
fi
}
log_output_has() {
if ! [[ "$output" =~ $1 ]]; then
echo "output did not have $1"
printf "output:\n$output"
exit 1
fi
}
nativevar DOLT_ROOT_PATH $BATS_TMPDIR/config-$$ /p