1#!/bin/bash 2# Copyright 2023 The gRPC Authors 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15 16set -ex 17 18if [ "${GRPC_RUNTESTS_USE_LOGIN_SHELL}" != "" ] 19then 20 unset GRPC_RUNTESTS_USE_LOGIN_SHELL 21 # respawn the entire script using login shell 22 exec bash -l "$0" "$@" 23fi 24 25ARCHIVE_WITH_SUBMODULES="$1" 26shift 27 28# The JUnit XML report file generated by run_tests.py is compatible with 29# the report format accepted by bazel as the result for tests target. 30REPORT_XML_FILE="${XML_OUTPUT_FILE}" 31# Create report suite name from the last component of the bazel target's name. 32REPORT_SUITE_NAME="$(echo ${TEST_TARGET} | sed 's|^.*[:/]||')" 33 34# Extract grpc repo archive 35tar -xopf ${ARCHIVE_WITH_SUBMODULES} 36cd grpc 37 38if [ "${GRPC_RUNTESTS_PREPARE_SCRIPT}" != "" ] 39then 40 source "../${GRPC_RUNTESTS_PREPARE_SCRIPT}" 41fi 42 43python3 tools/run_tests/run_tests.py -t -j "$(nproc)" -x "${REPORT_XML_FILE}" --report_suite_name "${REPORT_SUITE_NAME}" "$@" || FAILED="true" 44 45if [ -x "$(command -v ccache)" ] 46then 47 ccache --show-stats || true 48fi 49 50if [ "$FAILED" != "" ] 51then 52 exit 1 53fi 54 55