🧹 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 <[email protected]>
|
👋 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.
|
Triaged Aug 2026 — keep, needs work. An initial pass called this superseded, but that reasoned from the PR's head blob rather than the merge result; a verifier refuted it and the correction is adopted. Main deleted the local Three things needed before it can land:
|
|
Superseded by #65, which does the dedupe against current main. You were right that the duplication was real — it had grown to nine copies, and they had already drifted: two suites spelled the helper Two things had to change. This branch reasoned from its own head blob: it restored the local 45 call sites renamed, verified by the per-suite counts being identical before and after and mutations staying 17/17 guarded through the move. Two suites keep a local wrapper where the assertion genuinely differs in shape, named |
🎯 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