blob: 3a4069cdf0761daff7daf0969f7f3801b3d48c61 [file] [log] [blame]
#!/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.
export COLOR_RED=$'\e[31m'
export COLOR_BLUE=$'\e[34m'
export COLOR_YELLOW=$'\e[33m'
export COLOR_RESET=$'\e[0m'
export COLOR_GREEN=$'\e[32m'
if [[ ! "$#" -eq 2 ]]; then
echo "${COLOR_RED}You must provide 2 arguments: Group, Scope!.${COLOR_RESET}"
exit 1
fi
TEST_GROUP=${1}
TEST_SCOPE=${2}
function core_tests() {
echo "${COLOR_BLUE}Running core tests${COLOR_RESET}"
set +e
if [[ "${TEST_SCOPE}" == "DB" ]]; then
set -x
breeze testing core-tests --run-in-parallel --run-db-tests-only
RESULT=$?
set +x
elif [[ "${TEST_SCOPE}" == "Non-DB" ]]; then
set -x
breeze testing core-tests --use-xdist --skip-db-tests --no-db-cleanup --backend none
RESULT=$?
set +x
elif [[ "${TEST_SCOPE}" == "All" ]]; then
set -x
breeze testing core-tests --run-in-parallel
RESULT=$?
set +x
elif [[ "${TEST_SCOPE}" == "Quarantined" ]]; then
set -x
breeze testing core-tests --test-type "All-Quarantined" || true
RESULT=$?
set +x
elif [[ "${TEST_SCOPE}" == "System" ]]; then
set -x
breeze testing system-tests airflow-core/tests/system/example_empty.py
RESULT=$?
set +x
else
echo "Unknown test scope: ${TEST_SCOPE}"
set -e
exit 1
fi
set -e
if [[ ${RESULT} != "0" ]]; then
echo
echo "${COLOR_RED}The ${TEST_GROUP} test ${TEST_SCOPE} failed! Giving up${COLOR_RESET}"
echo
exit "${RESULT}"
fi
echo "${COLOR_GREEN}Core tests completed successfully${COLOR_RESET}"
}
function providers_tests() {
echo "${COLOR_BLUE}Running providers tests${COLOR_RESET}"
set +e
if [[ "${TEST_SCOPE}" == "DB" ]]; then
set -x
breeze testing providers-tests --run-in-parallel --run-db-tests-only
RESULT=$?
set +x
elif [[ "${TEST_SCOPE}" == "Non-DB" ]]; then
set -x
breeze testing providers-tests --use-xdist --skip-db-tests --no-db-cleanup --backend none
RESULT=$?
set +x
elif [[ "${TEST_SCOPE}" == "All" ]]; then
set -x
breeze testing providers-tests --run-in-parallel
RESULT=$?
set +x
elif [[ "${TEST_SCOPE}" == "Quarantined" ]]; then
set -x
breeze testing providers-tests --test-type "All-Quarantined" || true
RESULT=$?
set +x
else
echo "Unknown test scope: ${TEST_SCOPE}"
set -e
exit 1
fi
set -e
if [[ ${RESULT} != "0" ]]; then
echo
echo "${COLOR_RED}The ${TEST_GROUP} test ${TEST_SCOPE} failed! Giving up${COLOR_RESET}"
echo
exit "${RESULT}"
fi
echo "${COLOR_GREEN}Providers tests completed successfully${COLOR_RESET}"
}
function task_sdk_tests() {
echo "${COLOR_BLUE}Running Task SDK tests${COLOR_RESET}"
set -x
breeze testing task-sdk-tests
set +x
echo "${COLOR_BLUE}Task SDK tests completed${COLOR_RESET}"
}
function go_sdk_tests() {
echo "${COLOR_BLUE}Running Go SDK tests${COLOR_RESET}"
set -x
cd go-sdk
go test -v ./...
set +x
echo "${COLOR_BLUE}Go SDK tests completed${COLOR_RESET}"
}
function airflow_ctl_tests() {
echo "${COLOR_BLUE}Running Airflow CTL tests${COLOR_RESET}"
set -x
breeze testing airflow-ctl-tests
set +x
echo "${COLOR_BLUE}Airflow CTL tests completed${COLOR_RESET}"
}
function run_tests() {
if [[ "${TEST_GROUP}" == "core" ]]; then
core_tests
elif [[ "${TEST_GROUP}" == "providers" ]]; then
providers_tests
elif [[ "${TEST_GROUP}" == "task-sdk" ]]; then
task_sdk_tests
elif [[ "${TEST_GROUP}" == "go-sdk" ]]; then
go_sdk_tests
elif [[ "${TEST_GROUP}" == "airflow-ctl" ]]; then
airflow_ctl_tests
else
echo "Unknown test group: ${TEST_GROUP}"
exit 1
fi
}
run_tests