🧹 Refactor duplicated bash test helper variables and check function#50
🧹 Refactor duplicated bash test helper variables and check function#50savvides wants to merge 1 commit into
Conversation
Refactored `PASS`, `FAIL`, `TOTAL` tracking variables and the `check` function from all 4 test scripts into a unified `test_helper.sh`. Updated test scripts to source this helper, improving maintainability and reducing boilerplate duplication. Co-authored-by: savvides <1580637+savvides@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
There was a problem hiding this comment.
Code Review
This pull request refactors the test suite by extracting shared test-tracking variables and the check helper function into a centralized test/test_helper.sh file, reducing duplication across multiple test scripts. The feedback suggests improving the shared check function to capture and print output on failure to aid debugging, and refactoring check_version in test-version-classifier.sh to leverage this shared helper and eliminate remaining duplicated tracking logic.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| if eval "$2" >/dev/null 2>&1; then | ||
| PASS=$((PASS + 1)) | ||
| echo " PASS: $1" | ||
| else | ||
| FAIL=$((FAIL + 1)) | ||
| echo " FAIL: $1" | ||
| fi |
There was a problem hiding this comment.
When a test fails, it is extremely helpful to see the actual error output or stdout of the failed command to diagnose the issue immediately. Currently, both stdout and stderr are completely silenced via >/dev/null 2>&1.
We can capture the output and print it indented only when the command fails, without cluttering the output of passing tests.
| if eval "$2" >/dev/null 2>&1; then | |
| PASS=$((PASS + 1)) | |
| echo " PASS: $1" | |
| else | |
| FAIL=$((FAIL + 1)) | |
| echo " FAIL: $1" | |
| fi | |
| local out | |
| if out=$(eval "$2" 2>&1); then | |
| PASS=$((PASS + 1)) | |
| echo " PASS: $1" | |
| else | |
| FAIL=$((FAIL + 1)) | |
| echo " FAIL: $1" | |
| if [ -n "$out" ]; then | |
| echo "$out" | sed 's/^/ /' | |
| fi | |
| fi |
| } | ||
|
|
||
| check() { | ||
| check_version() { |
There was a problem hiding this comment.
Now that test_helper.sh is sourced and provides a robust check function, we can simplify check_version and eliminate the duplicated test-tracking (TOTAL, PASS, FAIL) and reporting logic.
You can refactor check_version to leverage the shared check helper:
check_version() {
check "$1 -> $2" "[ \"\$(classify_version \"$1\")\" = \"$2\" ]"
}This keeps the test cases clean while fully centralizing the test execution and counter logic.
🎯 What: Extracted the duplicate test framework variables (
PASS,FAIL,TOTAL) and thecheck()evaluation function from four separate shell test scripts into a single, sharedtest/test_helper.shscript.💡 Why: This removes code duplication across the test suite, making the test runner consistent and easier to maintain.
✅ Verification: Ran all four test files (
./test/smoke-test.sh,./test/integration-test.sh,./test/test-manifest-merge.sh, and./test/test-version-classifier.sh) and confirmed everything still passes exactly as before. Code review returned#Correct#.✨ Result: A cleaner and more consistent test structure without duplicated boilerplate, improving overall code health.
PR created automatically by Jules for task 3643888697011173666 started by @savvides