mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2025-12-22 22:20:02 +00:00
* refactor: restructure sqlness to support multiple envs and extract common utils Signed-off-by: WenyXu <wenymedia@gmail.com> * chore(ci): update sqlness cmd Signed-off-by: WenyXu <wenymedia@gmail.com> * chore: add comments Signed-off-by: WenyXu <wenymedia@gmail.com> * fix: error fmt Signed-off-by: WenyXu <wenymedia@gmail.com> * fix: only reconnect mysql and pg client Signed-off-by: WenyXu <wenymedia@gmail.com> * chore: apply suggestions Signed-off-by: WenyXu <wenymedia@gmail.com> --------- Signed-off-by: WenyXu <wenymedia@gmail.com>
83 lines
2.9 KiB
Bash
Executable File
83 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Assemble the GreptimeDB binary download URL for a specific version.
|
|
binary_url() {
|
|
local ver="$1"
|
|
local bin_tar="greptime-$(uname -s | tr '[:upper:]' '[:lower:]')-amd64-v$ver.tar.gz"
|
|
echo "https://github.com/GreptimeTeam/greptimedb/releases/download/v$ver/$bin_tar"
|
|
}
|
|
|
|
# Download a specific version of GreptimeDB binary tar file, untar it to folder `./bins/$ver`.
|
|
# `ver` is semver without prefix `v`
|
|
download_binary() {
|
|
local ver="$1"
|
|
local url="$(binary_url $ver)"
|
|
local bin_tar="greptime-$(uname -s | tr '[:upper:]' '[:lower:]')-amd64-v$ver.tar.gz"
|
|
|
|
if [ -f ./bins/$ver/greptime ]; then
|
|
echo " === binaries exist: $(ls ./bins/$ver/* | tr '\n' ' ')"
|
|
chmod +x ./bins/$ver/*
|
|
return
|
|
fi
|
|
|
|
if [ -f "$bin_tar" ]; then
|
|
echo " === tar file exists: $bin_tar"
|
|
else
|
|
echo " === Download binary ver: $ver"
|
|
echo " === Download binary url: $url"
|
|
curl --connect-timeout 5 --retry 5 --retry-delay 1 -L "$url" -o "$bin_tar"
|
|
fi
|
|
|
|
mkdir -p ./bins/$ver
|
|
tar -xf "$bin_tar" --strip-components=1 -C ./bins/$ver
|
|
|
|
echo " === unpacked: ./bins/$ver:"
|
|
ls -lh ./bins/$ver
|
|
|
|
chmod +x ./bins/$ver/*
|
|
}
|
|
|
|
# Test data compatibility that:
|
|
# - the data written by an old version of GreptimeDB can be read by the current one
|
|
# - the data written by the current version of GreptimeDB can be read by an old one ("forward" compatibility)
|
|
run_test() {
|
|
local old_ver="$1"
|
|
local forward="$2"
|
|
|
|
local write_case_dir="./tests/compat/case/write"
|
|
local read_case_dir="./tests/compat/case/read"
|
|
local bin_old="./bins/$old_ver/greptime"
|
|
local bin_new="./bins/current/greptime"
|
|
local runner="./bins/current/sqlness-runner"
|
|
|
|
echo " === Test with:"
|
|
echo " === old greptimedb version:"
|
|
"$bin_old" --version
|
|
echo " === new greptimedb version:"
|
|
"$bin_new" --version
|
|
|
|
# "forward" means we are testing forward compatibility:
|
|
# the data generated by current version GreptimeDB can be used by old.
|
|
# So we run new GreptimeDB binary first to write, then run old to read.
|
|
# And the opposite for backward compatibility.
|
|
if [ "$forward" == "forward" ]
|
|
then
|
|
echo " === Running forward compat test ..."
|
|
echo " === Run test: write with current GreptimeDB"
|
|
$runner bare --bins-dir $(dirname $bin_new) --case-dir $write_case_dir
|
|
else
|
|
echo " === Running backward compat test ..."
|
|
echo " === Run test: write with old GreptimeDB"
|
|
$runner bare --bins-dir $(dirname $bin_old) --case-dir $write_case_dir
|
|
fi
|
|
|
|
if [ "$forward" == 'forward' ]
|
|
then
|
|
echo " === Run test: read with old GreptimeDB"
|
|
$runner bare --bins-dir $(dirname $bin_old) --case-dir $read_case_dir
|
|
else
|
|
echo " === Run test: read with current GreptimeDB"
|
|
$runner bare --bins-dir $(dirname $bin_new) --case-dir $read_case_dir
|
|
fi
|
|
}
|