mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-30 03:22:14 +00:00
115 lines
3.7 KiB
Bash
Executable File
115 lines
3.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -exu
|
|
trap "exit" INT TERM
|
|
|
|
echo "ENV"
|
|
env
|
|
|
|
# fail on errors, verbose and export all env variables
|
|
set -e -x -a
|
|
|
|
echo "Current directory"
|
|
pwd
|
|
echo "Files in current directory"
|
|
ls -la ./
|
|
echo "Files in root directory"
|
|
ls -la /
|
|
echo "Files in /clickhouse-tests directory"
|
|
ls -la /clickhouse-tests
|
|
echo "Files in /clickhouse-tests/sqllogic directory"
|
|
ls -la /clickhouse-tests/sqllogic
|
|
echo "Files in /package_folder directory"
|
|
ls -la /package_folder
|
|
echo "Files in /test_output"
|
|
ls -la /test_output
|
|
echo "File in /sqllogictest"
|
|
ls -la /sqllogictest
|
|
|
|
dpkg -i package_folder/clickhouse-common-static_*.deb
|
|
dpkg -i package_folder/clickhouse-common-static-dbg_*.deb
|
|
dpkg -i package_folder/clickhouse-server_*.deb
|
|
dpkg -i package_folder/clickhouse-client_*.deb
|
|
|
|
# install test configs
|
|
# /clickhouse-tests/config/install.sh
|
|
|
|
sudo clickhouse start
|
|
|
|
sleep 5
|
|
for _ in $(seq 1 60); do if [[ $(wget --timeout=1 -q 'localhost:8123' -O-) == 'Ok.' ]]; then break ; else sleep 1; fi ; done
|
|
|
|
function run_tests()
|
|
{
|
|
set -x
|
|
|
|
cd /test_output
|
|
|
|
/clickhouse-tests/sqllogic/runner.py --help 2>&1 \
|
|
| ts '%Y-%m-%d %H:%M:%S'
|
|
|
|
mkdir -p /test_output/self-test
|
|
/clickhouse-tests/sqllogic/runner.py --log-file /test_output/runner-self-test.log \
|
|
self-test \
|
|
--self-test-dir /clickhouse-tests/sqllogic/self-test \
|
|
--out-dir /test_output/self-test \
|
|
2>&1 \
|
|
| ts '%Y-%m-%d %H:%M:%S'
|
|
|
|
cat /test_output/self-test/check_status.tsv >> /test_output/check_status.tsv
|
|
cat /test_output/self-test/test_results.tsv >> /test_output/test_results.tsv ||:
|
|
tar -zcvf self-test.tar.gz self-test 1>/dev/null
|
|
|
|
if [ -d /sqllogictest ]
|
|
then
|
|
mkdir -p /test_output/statements-test
|
|
/clickhouse-tests/sqllogic/runner.py \
|
|
--log-file /test_output/runner-statements-test.log \
|
|
--log-level info \
|
|
statements-test \
|
|
--input-dir /sqllogictest \
|
|
--out-dir /test_output/statements-test \
|
|
2>&1 \
|
|
| ts '%Y-%m-%d %H:%M:%S'
|
|
|
|
cat /test_output/statements-test/check_status.tsv >> /test_output/check_status.tsv
|
|
cat /test_output/statements-test/test_results.tsv >> /test_output/test_results.tsv
|
|
tar -zcvf statements-check.tar.gz statements-test 1>/dev/null
|
|
|
|
mkdir -p /test_output/complete-test
|
|
/clickhouse-tests/sqllogic/runner.py \
|
|
--log-file /test_output/runner-complete-test.log \
|
|
--log-level info \
|
|
complete-test \
|
|
--input-dir /sqllogictest \
|
|
--out-dir /test_output/complete-test \
|
|
2>&1 \
|
|
| ts '%Y-%m-%d %H:%M:%S'
|
|
|
|
cat /test_output/complete-test/check_status.tsv >> /test_output/check_status.tsv
|
|
cat /test_output/complete-test/test_results.tsv >> /test_output/test_results.tsv
|
|
tar -zcvf complete-check.tar.gz complete-test 1>/dev/null
|
|
fi
|
|
}
|
|
|
|
export -f run_tests
|
|
|
|
timeout "${MAX_RUN_TIME:-9000}" bash -c run_tests || echo "timeout reached" >&2
|
|
|
|
#/process_functional_tests_result.py || echo -e "failure\tCannot parse results" > /test_output/check_status.tsv
|
|
|
|
clickhouse-client -q "system flush logs" ||:
|
|
|
|
# Stop server so we can safely read data with clickhouse-local.
|
|
# Why do we read data with clickhouse-local?
|
|
# Because it's the simplest way to read it when server has crashed.
|
|
sudo clickhouse stop ||:
|
|
|
|
for _ in $(seq 1 60); do if [[ $(wget --timeout=1 -q 'localhost:8123' -O-) == 'Ok.' ]]; then sleep 1 ; else break; fi ; done
|
|
|
|
rg -Fa "Fatal" /var/log/clickhouse-server/clickhouse-server.log ||:
|
|
zstd < /var/log/clickhouse-server/clickhouse-server.log > /test_output/clickhouse-server.log.zst &
|
|
|
|
# Compressed (FIXME: remove once only github actions will be left)
|
|
mv /var/log/clickhouse-server/stderr.log /test_output/ ||:
|