mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-03 19:47:10 +00:00
feat(testrun): route physical-device iOS runs to the device driver
Execute resolves a non-simulator iOS target through ios.ResolveDevice into its hardware UDID and CoreDevice id; buildDriver constructs NewDevice via a seam instead of rejecting the device. Generalizes the --ios-device and --ios-app-path help to cover the device path; signing stays env-read, never a flag.
This commit is contained in:
1 parent
06ea651c71
commit
f5cfc4407e
4 files changed
+211
-45
No files matched your search
+10
-27
@@ -13,7 +13,6 @@ import (
|
||||
"github.com/priyanshujain/sanderling/internal/android"
|
||||
"github.com/priyanshujain/sanderling/internal/bundler"
|
||||
"github.com/priyanshujain/sanderling/internal/driver"
|
||||
"github.com/priyanshujain/sanderling/internal/ios"
|
||||
"github.com/priyanshujain/sanderling/internal/runner"
|
||||
"github.com/priyanshujain/sanderling/internal/trace"
|
||||
"github.com/priyanshujain/sanderling/internal/verifier"
|
||||
@@ -34,10 +33,13 @@ type Options struct {
|
||||
Output string
|
||||
ClearData bool
|
||||
|
||||
// iosUDID and iosIsSimulator are filled by Execute after resolving the iOS
|
||||
// target, then read by buildDriver to choose the companion or sidecar path.
|
||||
iosUDID string
|
||||
iosIsSimulator bool
|
||||
// iosUDID, iosIsSimulator, and iosCoreDeviceID are filled by Execute after
|
||||
// resolving the iOS target, then read by buildDriver to choose the simulator
|
||||
// companion or the physical-device driver. On the device path iosUDID is the
|
||||
// hardware UDID and iosCoreDeviceID is the CoreDevice id.
|
||||
iosUDID string
|
||||
iosIsSimulator bool
|
||||
iosCoreDeviceID string
|
||||
}
|
||||
|
||||
// Execute runs the full test pipeline: bundle, launch app, verify properties.
|
||||
@@ -48,30 +50,11 @@ func Execute(ctx context.Context, options Options, stdout io.Writer) error {
|
||||
return err
|
||||
}
|
||||
case "ios":
|
||||
udid, isSimulator, err := ios.ResolveTarget(ctx, options.IosDevice)
|
||||
resolved, err := resolveIOSTarget(ctx, options, stdout)
|
||||
if err != nil {
|
||||
// No query and nothing booted: keep boot-first behavior, then resolve
|
||||
// the simulator that EnsureSimulator just brought up.
|
||||
if options.IosDevice == "" {
|
||||
if bootErr := ios.EnsureSimulator(ctx, "", stdout); bootErr != nil {
|
||||
return bootErr
|
||||
}
|
||||
udid, isSimulator, err = ios.ResolveTarget(ctx, "")
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else if isSimulator {
|
||||
if err := ios.EnsureSimulator(ctx, options.IosDevice, stdout); err != nil {
|
||||
return err
|
||||
}
|
||||
udid, isSimulator, err = ios.ResolveTarget(ctx, options.IosDevice)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return err
|
||||
}
|
||||
options.iosUDID = udid
|
||||
options.iosIsSimulator = isSimulator
|
||||
options = resolved
|
||||
}
|
||||
prep, err := prepareBundleInputs(options)
|
||||
if err != nil {
|
||||
|
||||
Reference in new issue
Block a user