Skip to content

speedrun v0.2.3

Choose a tag to compare

@github-actions github-actions released this 30 Oct 01:42
· 58 commits to main since this release

macOS arm64 and Linux x86_64, Android and iOS simulators (the iOS agent was built with Xcode 27.0).

  • Android: Jetpack Compose screens are read as they are. Compose sends test tools no accessibility events, so on a Compose screen with more than ~50 elements, Speedrun could keep seeing an element that was gone (an extendedWaitUntil: notVisible timed out) or an old text. While a Compose screen shows, each read now asks the app for every element again. That makes reads slower there (~100 ms against ~10 ms on a 134-element screen); View-based and React Native apps keep their speed. (#2)
  • Android: runs on several devices at once. Each run used to forward the same port of this machine (7777) to its device's agent, so parallel --device runs could take each other's connection, and the first to finish cut the others off. Each run now gets a free port of its own from adb. --port still sets the agent's port on the device. (#3)
  • YAML: a double-quoted string continued with \ at the end of a line no longer gets an extra space where the lines join, as YAML 1.2 says (Jackson writes long strings this way). (#4)
  • iOS: taps wait for an overlay the screen does not list yet. An overlay that fades in takes touches before it shows up in the accessibility tree. Before every tap, Speedrun now asks iOS what a touch at the element would reach, as XCTest's isHittable does, and waits briefly when something else would take it. It used to ask only while a spinner showed.
  • iOS: the agent no longer drops out mid-run. An accessibility error that XCTest recorded as a test failure ended the agent, and the run had to restart it. Such errors are now logged and the agent carries on.

Thanks to @dextorer for #2, #3 and #4: each came with a precise diagnosis, and #2 with a repro app and a patch.

Speedrun Bench gained a screen in each platform's own toolkit, Jetpack Compose on Android and SwiftUI on iOS, with a flow covering the cases above. The suite now has 20 flows, passing on both platforms.

To update: speedrun update, or brew upgrade speedrun if you installed with Homebrew.