diff --git a/tools/run_tests/run_xds_tests.py b/tools/run_tests/run_xds_tests.py index 6e5b454e447..61bd8889156 100755 --- a/tools/run_tests/run_xds_tests.py +++ b/tools/run_tests/run_xds_tests.py @@ -1063,6 +1063,7 @@ try: qps=args.qps)) test_results = {} + failed_tests = [] for test_case in args.test_case: result = jobset.JobResult() log_dir = os.path.join(_TEST_LOG_BASE_DIR, test_case) @@ -1107,7 +1108,8 @@ try: result.state = 'PASSED' result.returncode = 0 except Exception as e: - logger.error('Test case %s failed: %s' % (test_case, e)) + logger.error('Test case %s failed: %s', test_case, e) + failed_tests.append(test_case) result.state = 'FAILED' result.message = str(e) finally: @@ -1124,6 +1126,9 @@ try: _SPONGE_XML_NAME), suite_name='xds_tests', multi_target=True) + if failed_tests: + logger.error('Test case(s) %s failed', failed_tests) + sys.exit(1) finally: if not args.keep_gcp_resources: logger.info('Cleaning up GCP resources. This may take some time.')