]> Cypherpunks repositories - gostls13.git/commitdiff
misc/ios: retry iOS launch even if no device app path was found
authorElias Naur <elias.naur@gmail.com>
Tue, 8 May 2018 08:21:09 +0000 (10:21 +0200)
committerElias Naur <elias.naur@gmail.com>
Tue, 8 May 2018 15:00:57 +0000 (15:00 +0000)
Now that the iOS exec wrapper uninstalls any existing test app before
installing a new, looking up the device app path might fail. Before,
the lookup always succeeded (even though the path reported might be
stale).

For the iOS builder.

Change-Id: I5667b6fae15f88745bdee796db219a429a26e203
Reviewed-on: https://go-review.googlesource.com/112075
Run-TryBot: Elias Naur <elias.naur@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
misc/ios/go_darwin_arm_exec.go

index 50e0342f679689ddb32e9816c2fe5c268b7c8b30..11219ce5c7978232733e6eabf57df70b737079c3 100644 (file)
@@ -469,12 +469,17 @@ func run(appdir, bundleID string, args []string) error {
        }
        attempt := 0
        for {
-               // The device app path is constant for a given installed app,
-               // but the device might not return a stale device path for
-               // a newly overwritten app, so retry the lookup as well.
+               // The device app path reported by the device might be stale, so retry
+               // the lookup of the device path along with the lldb launching below.
                deviceapp, err := findDeviceAppPath(bundleID)
                if err != nil {
-                       return err
+                       // The device app path might not yet exist for a newly installed app.
+                       if attempt == 5 {
+                               return err
+                       }
+                       attempt++
+                       time.Sleep(5 * time.Second)
+                       continue
                }
                lldb := exec.Command(
                        "python",