tests: next_id-Subshell-Bug in mcp-helpers.sh und KEEP_FIXTURES-Flag für refactoring-test.sh #102

Open
opened 2026-09-07 21:45:07 +00:00 by hauschel.fred · 0 comments
Collaborator

a) next_id-Subshell-Bug

tests/lib/mcp-helpers.sh: id=$(next_id) läuft in einer Subshell — REQUEST_ID wird dort
nur lokal erhöht und bleibt im Elternprozess bei 1. Folge: doppelte Request-IDs, falsche
Response-Zuordnung.

Ist beim Schreiben von tests/refactoring-test.sh (PR #95) einmal aufgetreten, dort per
eigenem Datei-Zähler umgangen statt den Helper zu fixen.

Fix: Zähler ohne Subshell führen (z.B. next_id schreibt direkt in eine Variable statt
auf stdout) und eine Warnung/Hinweis im Helper ergänzen.

b) KEEP_FIXTURES-Flag für refactoring-test.sh

tests/refactoring-test.sh löscht die Fixture-Kopie im EXIT-Trap. Für Diagnosen fehlt ein
KEEP_FIXTURES=1-Flag, das den Trap überspringt — wurde in PR #99 temporär reingepatcht und
danach wieder entfernt.

c) Dokumentation ergänzen

  • Responses müssen per id gematcht werden, nicht per tail -1 (Progress-Notifications
    liegen dazwischen)
  • jdt_import_project nimmt den Parameter path

Refs

#95, #99

## a) `next_id`-Subshell-Bug `tests/lib/mcp-helpers.sh`: `id=$(next_id)` läuft in einer Subshell — `REQUEST_ID` wird dort nur lokal erhöht und bleibt im Elternprozess bei 1. Folge: doppelte Request-IDs, falsche Response-Zuordnung. Ist beim Schreiben von `tests/refactoring-test.sh` (PR #95) einmal aufgetreten, dort per eigenem Datei-Zähler umgangen statt den Helper zu fixen. **Fix:** Zähler ohne Subshell führen (z.B. `next_id` schreibt direkt in eine Variable statt auf stdout) und eine Warnung/Hinweis im Helper ergänzen. ## b) `KEEP_FIXTURES`-Flag für `refactoring-test.sh` `tests/refactoring-test.sh` löscht die Fixture-Kopie im `EXIT`-Trap. Für Diagnosen fehlt ein `KEEP_FIXTURES=1`-Flag, das den Trap überspringt — wurde in PR #99 temporär reingepatcht und danach wieder entfernt. ## c) Dokumentation ergänzen - Responses müssen per `id` gematcht werden, nicht per `tail -1` (Progress-Notifications liegen dazwischen) - `jdt_import_project` nimmt den Parameter `path` ## Refs #95, #99
Commenting is not possible because the repository is archived.
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ai-tools/jdt-mcp-server#102
No description provided.