Skip to content

Run UI tests with both renderers#877

Merged
Kyle-Ye merged 3 commits into
mainfrom
optimize/uitest_osui
May 27, 2026
Merged

Run UI tests with both renderers#877
Kyle-Ye merged 3 commits into
mainfrom
optimize/uitest_osui

Conversation

@Kyle-Ye
Copy link
Copy Markdown
Member

@Kyle-Ye Kyle-Ye commented May 27, 2026

Agent Summary

This draft PR updates UI test coverage so CI exercises both renderer modes.

Changes:

  • Adds SwiftUI Renderer and OpenSwiftUI Renderer variants to the iOS and macOS UI test workflow.
  • Wires OPENSWIFTUI_SWIFTUI_RENDERER through the renderer matrix.
  • Splits PR status contexts and snapshot artifact names by renderer to avoid collisions.
  • Adds renderer-vendor checks in UI tests so OpenSwiftUI-renderer-specific gaps can be skipped with explicit reasons.

Validation:

  • git diff --check HEAD^ HEAD
  • Parsed .github/workflows/uitests.yml as YAML locally

@github-actions github-actions Bot added area: tests Test suites, UI tests, fixtures, snapshots, and test support code. type: ci GitHub Actions, test infrastructure, runners, checks, or automation. type: tests Test coverage, test infrastructure, snapshots, or test-only changes. labels May 27, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 27, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 26.93%. Comparing base (be40470) to head (e032d57).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #877      +/-   ##
==========================================
- Coverage   26.94%   26.93%   -0.02%     
==========================================
  Files         678      678              
  Lines       47146    47146              
==========================================
- Hits        12705    12700       -5     
- Misses      34441    34446       +5     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Kyle-Ye Kyle-Ye marked this pull request as ready for review May 27, 2026 15:11
@Kyle-Ye Kyle-Ye merged commit 1cb2809 into main May 27, 2026
6 of 7 checks passed
@Kyle-Ye Kyle-Ye deleted the optimize/uitest_osui branch May 27, 2026 15:12
@Kyle-Ye Kyle-Ye linked an issue May 27, 2026 that may be closed by this pull request
@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented May 27, 2026

🤖 Augment PR Summary

Summary: CI UI tests now run in both renderer modes to keep coverage for SwiftUI-backed and OpenSwiftUI-backed rendering.

Key changes:

  • Adds a renderer matrix to iOS/macOS UI test jobs and threads OPENSWIFTUI_SWIFTUI_RENDERER through.
  • Splits commit-status contexts and snapshot artifact names by renderer to avoid collisions.
  • Adds renderer-vendor checks so known unsupported effects under the OpenSwiftUI renderer can be skipped with explicit reasons.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 2 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

xcode-version: ["16.4"]
release: [2024]
ios-version: ["18.5"]
renderer:
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With renderer added as a matrix axis, this matrix still relies on an include entry that doesn’t specify renderer; that can produce an extra job where matrix.renderer.* is unset (and/or leave the base combinations without ios-simulator-name). Consider ensuring every generated matrix row defines both ios-simulator-name and renderer.

Severity: high

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

public static var allCases: [ViewRendererVendor] { [.osui, .sui] }
}
public let viewRendererVendor = ViewRendererVendor.sui
#endif
Copy link
Copy Markdown

@augmentcode augmentcode Bot May 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

viewRendererVendor is only defined in this #else compilation branch and is currently hard-coded to .sui; the new .disabled(if: viewRendererVendor == .osui, ...) suite annotations may fail to compile or behave incorrectly when the other branch is active now that CI runs both renderer modes.

Severity: high

Other Locations
  • Example/OpenSwiftUIUITests/Layout/Stack/ZStackIndexUITests.swift:11
  • Example/OpenSwiftUIUITests/Render/GeometryEffect/Rotation3DEffectUITests.swift:10
  • Example/OpenSwiftUIUITests/Render/GeometryEffect/RotationEffectUITests.swift:10
  • Example/OpenSwiftUIUITests/Render/RendererEffect/BlurEffectUITests.swift:10
  • Example/OpenSwiftUIUITests/Render/RendererEffect/ClipEffectUITests.swift:10

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

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

Labels

area: tests Test suites, UI tests, fixtures, snapshots, and test support code. type: ci GitHub Actions, test infrastructure, runners, checks, or automation. type: tests Test coverage, test infrastructure, snapshots, or test-only changes.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add OpenSwiftUI renderer

1 participant