Files
impala/tests/run-custom-cluster-tests.sh
stiga-huang fed0c6b321 IMPALA-11183: Fix run-all-tests.sh can't repeat tests more than once
We launch a background process checking whether tests are timeout in
run-all-tests.sh. When NUM_TEST_ITERATIONS is set to larger than 1,
run-all-tests.sh will repeat the tests. However, the timeout process is
killed at the end of each iteration, which fails the script when we want
to repeat tests. This patch moves the killing logic outside the loop.

This patch also adds a new variable, CLUSTER_TEST_FILES, to specify
a particular custom-cluster test to run.

To speedup the test iteration, this patch avoids always restarting the
Impala cluster. E.g. when we just need to run a particular EE test, we
only need to start the Impala cluster once.

Tested with NUM_TEST_ITERATIONS=10 and verified with following
scenarios.

1) custom-cluster test only
export BE_TEST, FE_TEST, JDBC_TEST, EE_TEST to false
export CLUSTER_TEST=true and CLUSTER_TEST_FILES to following values:
custom_cluster/test_local_catalog.py
custom_cluster/test_local_catalog.py::TestLocalCatalogRetries
custom_cluster/test_local_catalog.py::TestLocalCatalogRetries::test_replan_limit
"custom_cluster/test_local_catalog.py -k replan_limit"

2) e2e test only
export BE_TEST, FE_TEST, JDBC_TEST, CLUSTER_TEST to false
export EE_TEST=true and
EE_TEST_FILES=query_test/test_scanners.py::TestParquet::test_multiple_blocks_mt_dop

Change-Id: I2bdd8a9c68ffb0dd1c3ea72c3649b00abcc05a49
Reviewed-on: http://gerrit.cloudera.org:8080/18328
Reviewed-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
2022-05-23 06:24:15 +00:00

55 lines
1.9 KiB
Bash
Executable File

#!/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.
#
# Runs the custom-cluster tests. Must be run after the query tests because any existing
# clusters will be restarted.
set -euo pipefail
. $IMPALA_HOME/bin/report_build_error.sh
setup_report_build_error
# Disable HEAPCHECK for the process failure tests because they can cause false positives.
# TODO: Combine with run-process-failure-tests.sh
export HEAPCHECK=
export LOG_DIR="${IMPALA_CUSTOM_CLUSTER_TEST_LOGS_DIR}"
RESULTS_DIR="${IMPALA_CUSTOM_CLUSTER_TEST_LOGS_DIR}/results"
mkdir -p "${RESULTS_DIR}"
# KERBEROS TODO We'll want to pass kerberos status in here.
cd "${IMPALA_HOME}/tests"
. "${IMPALA_HOME}/bin/set-classpath.sh" &> /dev/null
: ${CLUSTER_TEST_FILES:=}
if [[ "$CLUSTER_TEST_FILES" != "" ]]; then
ARGS=($CLUSTER_TEST_FILES)
else
ARGS=(custom_cluster/ authorization/)
fi
AUX_CUSTOM_DIR="${IMPALA_AUX_TEST_HOME}/tests/aux_custom_cluster_tests/"
if [[ -d "${AUX_CUSTOM_DIR}" ]]
then
ARGS+=("${AUX_CUSTOM_DIR}")
fi
ARGS+=("--junitxml=${RESULTS_DIR}/TEST-impala-custom-cluster.xml")
ARGS+=("--resultlog=${RESULTS_DIR}/TEST-impala-custom-cluster.log")
ARGS+=("$@")
impala-py.test "${ARGS[@]}"