1 Star 0 Fork 92

Adminhcf / apache-doris

forked from 百度开源 / apache-doris 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
run-regression-test.sh 5.26 KB
一键复制 编辑 原始数据 按行查看 历史
#!/usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#####################################################################
# This script is used to run regression test of Doris Backend
# Usage: $0 <shell_options> <framework_options>
# Optional shell_options:
# --clean clean output of regression test
# --run run regression test. build framework if necessary
#
# Optional framework_options
# -h print all other_options
# -s xxx suite name
# -g xxx group name
# -c xxx jdbc url
# -u xxx jdbc user
# -genOut generate .out file
# -forceGenOut delete and generate .out file
#
# log to ${DORIS_HOME}/output/regression/log
#####################################################################
set -eo pipefail
#set -x
ROOT=`dirname "$0"`
ROOT=`cd "$ROOT"; pwd`
DORIS_HOME=${ROOT}
# Check args
usage() {
echo "
Usage: $0 <shell_options> <framework_options>
Optional shell_options:
--clean clean output of regression test framework
--run run regression test. build framework if necessary
Optional framework_options:
-s run a specified suite
-g run a specified group
-h **print all framework options usage**
-genOut generate .out file if not exist
-forceGenOut delete and generate .out file if not exist
Eg.
$0 build regression test framework and run all suite which in default group
$0 --run test_select run a suite which named as test_select
$0 --run 'test*' run all suite which named start with 'test', note that you must quota with ''
$0 --run -s test_select run a suite which named as test_select
$0 --run test_select -genOut generate output file for test_select if not exist
$0 --run -g default run all suite in the group which named as default
$0 --clean clean output of regression test framework
$0 --clean --run test_select clean output and build regression test framework and run a suite which named as test_select
$0 --run -h print framework options
Log path: \${DORIS_HOME}/output/regression-test/log
Default config file: \${DORIS_HOME}/regression-test/conf/regression-conf.groovy
"
exit 1
}
CLEAN=
WRONG_CMD=
RUN=
if [ $# == 0 ] ; then
#default
CLEAN=0
WRONG_CMD=0
RUN=1
else
CLEAN=0
RUN=0
WRONG_CMD=0
while true; do
case "$1" in
--clean) CLEAN=1 ; shift ;;
--run) RUN=1 ; shift ;;
*)
if [ ${RUN} -eq 0 ] && [ ${CLEAN} -eq 0 ]; then
WRONG_CMD=1
fi
break ;;
esac
done
fi
if [ ${WRONG_CMD} -eq 1 ]; then
usage
exit 1
fi
# set maven
MVN_CMD=mvn
if [[ ! -z ${CUSTOM_MVN} ]]; then
MVN_CMD=${CUSTOM_MVN}
fi
if ! ${MVN_CMD} --version; then
echo "Error: mvn is not found"
exit 1
fi
export MVN_CMD
CONF_DIR=${DORIS_HOME}/regression-test/conf
CONFIG_FILE=${CONF_DIR}/regression-conf.groovy
LOG_CONFIG_FILE=${CONF_DIR}/logback.xml
FRAMEWORK_SOURCE_DIR=${DORIS_HOME}/regression-test/framework
REGRESSION_TEST_BUILD_DIR=${FRAMEWORK_SOURCE_DIR}/target
OUTPUT_DIR=${DORIS_HOME}/output/regression-test
LOG_OUTPUT_FILE=${OUTPUT_DIR}/log
RUN_JAR=${OUTPUT_DIR}/lib/regression-test-*.jar
if [ ${CLEAN} -eq 1 ]; then
rm -rf ${REGRESSION_TEST_BUILD_DIR}
rm -rf ${OUTPUT_DIR}
fi
if [ ${RUN} -ne 1 ]; then
echo "Finished"
exit 0
fi
if [ ! -f ${RUN_JAR} ]; then
echo "===== Build Regression Test Framework ====="
cd ${DORIS_HOME}/regression-test/framework
${MVN_CMD} package
cd ${DORIS_HOME}
mkdir -p ${OUTPUT_DIR}/{lib,log}
cp -r ${REGRESSION_TEST_BUILD_DIR}/regression-test-*.jar ${OUTPUT_DIR}/lib
fi
# check java home
if [[ -z ${JAVA_HOME} ]]; then
echo "Error: JAVA_HOME is not set"
exit 1
fi
# check java version
export JAVA=${JAVA_HOME}/bin/java
REGRESSION_OPTIONS_PREFIX=
# contains framework options and not start with -
# it should be suite name
if [ $# -ne 0 ] && [[ "$1" =~ ^[^-].* ]]; then
# specify suiteName
REGRESSION_OPTIONS_PREFIX='-s'
fi
echo "===== Run Regression Test ====="
$JAVA -DDORIS_HOME=$DORIS_HOME \
-DLOG_PATH=$LOG_OUTPUT_FILE \
-Dlogback.configurationFile=${LOG_CONFIG_FILE} \
-jar ${RUN_JAR} \
-cf ${CONFIG_FILE} \
${REGRESSION_OPTIONS_PREFIX} "$@"
Java
1
https://gitee.com/haocaifei_haocaifei/apache-doris.git
git@gitee.com:haocaifei_haocaifei/apache-doris.git
haocaifei_haocaifei
apache-doris
apache-doris
master

搜索帮助