From 82620ffae11f535333652a3e1ea60f8ccbd462f2 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Thu, 30 Jul 2026 08:16:01 -0400 Subject: [PATCH 1/8] feat: revamp parallel test outputs for searchability and clarity --- .kokoro/system.sh | 70 +++++++++++++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 24 deletions(-) diff --git a/.kokoro/system.sh b/.kokoro/system.sh index 1d4414b8a92a..97d3a4b02e55 100755 --- a/.kokoro/system.sh +++ b/.kokoro/system.sh @@ -68,9 +68,7 @@ run_package_test() { trap 'rm -rf "$gcloud_config_dir"' EXIT - echo "------------------------------------------------------------" - echo "Configuring environment for: ${package_name}" - echo "------------------------------------------------------------" + case "${package_name}" in "google-auth") @@ -92,6 +90,13 @@ run_package_test() { NOX_FILE="noxfile.py" fi ;; + "google-cloud-dns") + PROJECT_ID=$(cat "${KOKORO_GFILE_DIR}/project-id.json") + GOOGLE_APPLICATION_CREDENTIALS="${KOKORO_GFILE_DIR}/service-account.json" + NOX_FILE="noxfile.py" + # EXPERIMENTAL: Force running all system sessions to test mixed results + NOX_SESSION="system" + ;; *) PROJECT_ID=$(cat "${KOKORO_GFILE_DIR}/project-id.json") GOOGLE_APPLICATION_CREDENTIALS="${KOKORO_GFILE_DIR}/service-account.json" @@ -125,7 +130,7 @@ run_package_test() { reap_parallel_results() { local retval=0 local failed_count=0 - local passed_count=0 + local succeeded_count=0 if [ -z "$LOG_DIR" ]; then echo "Error: LOG_DIR is not set." @@ -140,49 +145,66 @@ reap_parallel_results() { done local total_tested=${#PACKAGES_TO_TEST[@]} - passed_count=$((total_tested - failed_count)) + succeeded_count=$((total_tested - failed_count)) echo "" echo "==================================================" - echo " TEST RUN SUMMARY " + echo "@SUMMARY - TEST RUN RESULTS" echo "==================================================" - echo "Total tested: $total_tested" - echo "Passed: $passed_count" - echo "Failed: $failed_count" + echo "Total Packages: $total_tested" + echo "Succeeded: $succeeded_count" + echo "Failed: $failed_count" echo "==================================================" - local passed_packages=() + local succeeded_packages=() for pkg in "${PACKAGES_TO_TEST[@]}"; do if [ ! -f "$LOG_DIR/$pkg.failed" ]; then - passed_packages+=("$pkg") + succeeded_packages+=("$pkg") fi done - if [ ${#passed_packages[@]} -gt 0 ]; then - echo "" - echo "PASSED PACKAGES:" - printf "%s\n" "${passed_packages[@]}" | sort | sed 's/^/- /' - fi - if [ "$failed_count" -gt 0 ]; then - echo "" - echo "!!! DETAILED LOGS FOR FAILED PACKAGES !!!" + echo "==================================================" + echo "@FAILED - DETAILED LOGS FOR FAILED PACKAGES" + echo "==================================================" for failed in "$LOG_DIR"/*.failed; do if [ -f "$failed" ]; then local pkg=$(basename "$failed" .failed) echo "--------------------------------------------------" - echo "LOGS FOR: $pkg" + echo "@PACKAGE (FAILED): $pkg" echo "--------------------------------------------------" if [ -n "$KOKORO_ARTIFACTS_DIR" ] && [ -f "$KOKORO_ARTIFACTS_DIR/$pkg/sponge_log.log" ]; then cat "$KOKORO_ARTIFACTS_DIR/$pkg/sponge_log.log" - else + elif [ -f "$LOG_DIR/$pkg.log" ]; then cat "$LOG_DIR/$pkg.log" + else + echo "Warning: No log file found for failed package $pkg" fi echo "" fi done retval=1 fi + + if [ ${#succeeded_packages[@]} -gt 0 ]; then + echo "==================================================" + echo "@SUCCEEDED - DETAILED LOGS FOR SUCCEEDED PACKAGES" + echo "==================================================" + for pkg in "${succeeded_packages[@]}"; do + echo "--------------------------------------------------" + echo "@PACKAGE (SUCCEEDED): $pkg" + echo "--------------------------------------------------" + if [ -n "$KOKORO_ARTIFACTS_DIR" ] && [ -f "$KOKORO_ARTIFACTS_DIR/$pkg/sponge_log.log" ]; then + cat "$KOKORO_ARTIFACTS_DIR/$pkg/sponge_log.log" + elif [ -f "$LOG_DIR/$pkg.log" ]; then + cat "$LOG_DIR/$pkg.log" + else + echo "Warning: No log file found for succeeded package $pkg" + fi + echo "" + done + fi + return $retval } @@ -272,9 +294,9 @@ export system_test_script PROJECT_ROOT KOKORO_GFILE_DIR # -P "$MAX_JOBS" controls concurrency # -I {} replaces {} with the package name printf '%s\n' "${PACKAGES_TO_TEST[@]}" \ - | xargs -P "$MAX_JOBS" -I {} \ + | xargs -n 1 -P "$MAX_JOBS" \ bash -c ' - pkg="$1" + pkg="$0" # Determine log location: prefer Sponge artifacts directory if available if [ -n "$KOKORO_ARTIFACTS_DIR" ]; then pkg_log_dir="$KOKORO_ARTIFACTS_DIR/$pkg" @@ -286,7 +308,7 @@ printf '%s\n' "${PACKAGES_TO_TEST[@]}" \ # Run test; if it fails, create a .failed file to signal failure to the reaper run_package_test "$pkg" > "$log_file" 2>&1 || touch "$LOG_DIR/$pkg.failed" - ' _ "{}" + ' reap_parallel_results || RETVAL=1 From ff39e7304b5b731c51ddc328e6e0ac4bca9a176a Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Thu, 30 Jul 2026 08:16:15 -0400 Subject: [PATCH 2/8] test: add trigger comments and dummy test for mixed results --- packages/google-cloud-access-approval/setup.py | 2 ++ packages/google-cloud-dns/tests/system/test_system.py | 11 +++++++++++ packages/google-cloud-speech/setup.py | 2 ++ packages/google-cloud-translate/setup.py | 2 ++ 4 files changed, 17 insertions(+) diff --git a/packages/google-cloud-access-approval/setup.py b/packages/google-cloud-access-approval/setup.py index 92be02c36dca..c586c00550b6 100644 --- a/packages/google-cloud-access-approval/setup.py +++ b/packages/google-cloud-access-approval/setup.py @@ -1,4 +1,6 @@ # -*- coding: utf-8 -*- +# Trigger comment for parallelization output revamp + # Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/packages/google-cloud-dns/tests/system/test_system.py b/packages/google-cloud-dns/tests/system/test_system.py index 12fb86084fac..592a4437a939 100644 --- a/packages/google-cloud-dns/tests/system/test_system.py +++ b/packages/google-cloud-dns/tests/system/test_system.py @@ -27,3 +27,14 @@ def test_quota(): assert "kind" not in quotas for keyspec in quotas["whitelistedKeySpecs"]: assert "kind" not in keyspec + + +import sys + +import pytest + + +def test_dummy_mixed_results(): + if sys.version_info >= (3, 12): + pytest.skip("Skipping on Python 3.12+ to test mixed results") + assert False, "Intentional failure on Python < 3.12 to verify output formatting" diff --git a/packages/google-cloud-speech/setup.py b/packages/google-cloud-speech/setup.py index eda85ef65978..d9ce2eaf663e 100644 --- a/packages/google-cloud-speech/setup.py +++ b/packages/google-cloud-speech/setup.py @@ -1,4 +1,6 @@ # -*- coding: utf-8 -*- +# Trigger comment for parallelization output revamp + # Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/packages/google-cloud-translate/setup.py b/packages/google-cloud-translate/setup.py index 4d521f7ca14b..cf95ff8dea4c 100644 --- a/packages/google-cloud-translate/setup.py +++ b/packages/google-cloud-translate/setup.py @@ -1,4 +1,6 @@ # -*- coding: utf-8 -*- +# Trigger comment for parallelization output revamp + # Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); From 7f903ea269cab8e9941ff07459869f97acf9969a Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Thu, 30 Jul 2026 08:28:00 -0400 Subject: [PATCH 3/8] chore: tweak experimental comment and blank lines in system.sh --- .kokoro/system.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.kokoro/system.sh b/.kokoro/system.sh index 97d3a4b02e55..bca935353f0a 100755 --- a/.kokoro/system.sh +++ b/.kokoro/system.sh @@ -67,9 +67,6 @@ run_package_test() { # 🪤 TRAP: Ensure cleanup of THIS specific temp dir on exit of this subshell trap 'rm -rf "$gcloud_config_dir"' EXIT - - - case "${package_name}" in "google-auth") # Copy files needed for google-auth system tests @@ -91,10 +88,11 @@ run_package_test() { fi ;; "google-cloud-dns") + # EXPERIMENTAL: Force running all system sessions to test mixed results. This will be reverted + # before merge. You can safely ignore it. PROJECT_ID=$(cat "${KOKORO_GFILE_DIR}/project-id.json") GOOGLE_APPLICATION_CREDENTIALS="${KOKORO_GFILE_DIR}/service-account.json" NOX_FILE="noxfile.py" - # EXPERIMENTAL: Force running all system sessions to test mixed results NOX_SESSION="system" ;; *) From cb1a0858d5d46004b8150cf01f84955387c24fed Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Thu, 30 Jul 2026 10:17:55 -0400 Subject: [PATCH 4/8] feat: add package lists to top of Failed and Succeeded sections --- .kokoro/system.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.kokoro/system.sh b/.kokoro/system.sh index bca935353f0a..7635c0be17ea 100755 --- a/.kokoro/system.sh +++ b/.kokoro/system.sh @@ -165,6 +165,12 @@ reap_parallel_results() { echo "==================================================" echo "@FAILED - DETAILED LOGS FOR FAILED PACKAGES" echo "==================================================" + # List failed packages + for failed in "$LOG_DIR"/*.failed; do + if [ -f "$failed" ]; then + basename "$failed" .failed + fi + done for failed in "$LOG_DIR"/*.failed; do if [ -f "$failed" ]; then local pkg=$(basename "$failed" .failed) @@ -188,6 +194,10 @@ reap_parallel_results() { echo "==================================================" echo "@SUCCEEDED - DETAILED LOGS FOR SUCCEEDED PACKAGES" echo "==================================================" + # List succeeded packages + for pkg in "${succeeded_packages[@]}"; do + echo "$pkg" + done for pkg in "${succeeded_packages[@]}"; do echo "--------------------------------------------------" echo "@PACKAGE (SUCCEEDED): $pkg" From 665d05958e683b07b458745c24c053cb8d545853 Mon Sep 17 00:00:00 2001 From: Chalmer Lowe Date: Fri, 31 Jul 2026 15:44:51 -0400 Subject: [PATCH 5/8] Update packages/google-cloud-speech/setup.py --- packages/google-cloud-speech/setup.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/google-cloud-speech/setup.py b/packages/google-cloud-speech/setup.py index d9ce2eaf663e..eda85ef65978 100644 --- a/packages/google-cloud-speech/setup.py +++ b/packages/google-cloud-speech/setup.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# Trigger comment for parallelization output revamp - # Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); From 9af2aae178d2fda8def23b060cd3a2f1d74ddf6c Mon Sep 17 00:00:00 2001 From: Chalmer Lowe Date: Fri, 31 Jul 2026 15:44:59 -0400 Subject: [PATCH 6/8] Update packages/google-cloud-translate/setup.py --- packages/google-cloud-translate/setup.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/google-cloud-translate/setup.py b/packages/google-cloud-translate/setup.py index cf95ff8dea4c..4d521f7ca14b 100644 --- a/packages/google-cloud-translate/setup.py +++ b/packages/google-cloud-translate/setup.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# Trigger comment for parallelization output revamp - # Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); From a6de287933bd89265489c3412a23436d337121ff Mon Sep 17 00:00:00 2001 From: Chalmer Lowe Date: Fri, 31 Jul 2026 15:45:08 -0400 Subject: [PATCH 7/8] Update packages/google-cloud-dns/tests/system/test_system.py --- packages/google-cloud-dns/tests/system/test_system.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/packages/google-cloud-dns/tests/system/test_system.py b/packages/google-cloud-dns/tests/system/test_system.py index 592a4437a939..12fb86084fac 100644 --- a/packages/google-cloud-dns/tests/system/test_system.py +++ b/packages/google-cloud-dns/tests/system/test_system.py @@ -27,14 +27,3 @@ def test_quota(): assert "kind" not in quotas for keyspec in quotas["whitelistedKeySpecs"]: assert "kind" not in keyspec - - -import sys - -import pytest - - -def test_dummy_mixed_results(): - if sys.version_info >= (3, 12): - pytest.skip("Skipping on Python 3.12+ to test mixed results") - assert False, "Intentional failure on Python < 3.12 to verify output formatting" From 13d554c2a66fdf262aafa578ceefde78e966a0c2 Mon Sep 17 00:00:00 2001 From: Chalmer Lowe Date: Fri, 31 Jul 2026 15:45:15 -0400 Subject: [PATCH 8/8] Update packages/google-cloud-access-approval/setup.py --- packages/google-cloud-access-approval/setup.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/google-cloud-access-approval/setup.py b/packages/google-cloud-access-approval/setup.py index c586c00550b6..92be02c36dca 100644 --- a/packages/google-cloud-access-approval/setup.py +++ b/packages/google-cloud-access-approval/setup.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# Trigger comment for parallelization output revamp - # Copyright 2026 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License");