Skip to content

Driver: launch, input sends, and quit are still unbounded #92

Description

@leoafarias

pollFrameAdvance, waitForText, waitFor, and waitForAbsent now spend one
budget across their requests, so a stalled app cannot hold them past their
timeout. Three paths in package:noir_driver are still unbounded.

  • The input request itself. sendBytes awaits the ext.noir.driver.* RPC
    with no deadline. The settle window that follows it is bounded, but the send
    is not, so a driven app that stops answering blocks before the bounded part
    begins.
  • NoirDriver.launch. Process start and VM-service attach have no ceiling
    of their own. awaitDriverReady is bounded, but only once it is reached.
  • quit and kill. Both await the process exit code. An app whose cleanup
    hangs leaves the caller waiting with no timeout.

A test process that hangs in any of these is a hung suite rather than a failing
one, which is the outcome the wait budgets exist to avoid.

Suggested shape: extend the existing PollDeadline in
packages/noir_driver/lib/src/driver_polling.dart to cover a single request,
and give launch and quit explicit, documented ceilings. Decide separately
whether a launch timeout should kill the process it started.

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