Skip to content

Preserve PHPUnit bootstrap integration process failures #2467

Description

@chubes4

Problem

When tests/playground-phpunit-bootstrap-failure.integration.test.ts receives a failed recipe-run process with empty stdout, its catch path calls JSON.parse(""). That replaces the original CLI process failure with SyntaxError: Unexpected end of JSON input, hiding stderr, exit status, timeout, and command context needed to diagnose the runtime failure.

This occurred in the full smoke aggregate while verifying #2464 and #2466. The test passes standalone, so preserving the original failure is required to diagnose any recurrence under aggregate load.

Desired outcome

Parse recipe-run output only when non-empty JSON exists. Return structured failed recipe output when available; otherwise rethrow the original process error unchanged.

Acceptance criteria

  • Empty or absent stdout does not enter JSON.parse.
  • Structured recipe failure JSON remains the primary assertion input.
  • Unstructured process failures retain their original diagnostics.
  • The standalone integration and full smoke aggregate pass.

AI assistance

GPT-5.6 Sol via OpenCode identified the masking parser after the aggregate failure and drafted this diagnostic repair under Chris Huber's direction.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions