mirror of
https://github.com/golang/go
synced 2024-11-11 19:51:37 -07:00
misc/ios: speed up the iOS exec wrapper
First, take the exclusive lock that ensures only one running binary later: after assembling the gotest.app directory and signing it. Second, don't pass -r to ios-deploy. The -r flag uninstalls the app before installing it. It seems unnecessary, takes extra time and if there was only the one developer app on the phone, it will drop the developer permission on uninstall. Change-Id: Ia222d3e5c2e1e2285f53074eb952941fd45fadd9 Reviewed-on: https://go-review.googlesource.com/106676 Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
This commit is contained in:
parent
90fee59287
commit
299b40b86d
@ -94,6 +94,13 @@ func main() {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
appdir := filepath.Join(tmpdir, "gotest.app")
|
||||
os.RemoveAll(appdir)
|
||||
|
||||
if err := assembleApp(appdir, os.Args[1]); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// This wrapper uses complicated machinery to run iOS binaries. It
|
||||
// works, but only when running one binary at a time.
|
||||
// Use a file lock to make sure only one wrapper is running at a time.
|
||||
@ -108,6 +115,7 @@ func main() {
|
||||
if err := syscall.Flock(int(lock.Fd()), syscall.LOCK_EX); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// Approximately 1 in a 100 binaries fail to start. If it happens,
|
||||
// try again. These failures happen for several reasons beyond
|
||||
// our control, but all of them are safe to retry as they happen
|
||||
@ -118,7 +126,7 @@ func main() {
|
||||
if i > 0 {
|
||||
fmt.Fprintln(os.Stderr, "start timeout, trying again")
|
||||
}
|
||||
err = run(os.Args[1], os.Args[2:])
|
||||
err = run(appdir, os.Args[2:])
|
||||
if err == nil || err != errRetry {
|
||||
break
|
||||
}
|
||||
@ -140,9 +148,7 @@ func getenv(envvar string) string {
|
||||
return s
|
||||
}
|
||||
|
||||
func run(bin string, args []string) (err error) {
|
||||
appdir := filepath.Join(tmpdir, "gotest.app")
|
||||
os.RemoveAll(appdir)
|
||||
func assembleApp(appdir, bin string) error {
|
||||
if err := os.MkdirAll(appdir, 0755); err != nil {
|
||||
return err
|
||||
}
|
||||
@ -182,7 +188,10 @@ func run(bin string, args []string) (err error) {
|
||||
if err := cmd.Run(); err != nil {
|
||||
return fmt.Errorf("codesign: %v", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func run(appdir string, args []string) (err error) {
|
||||
oldwd, err := os.Getwd()
|
||||
if err != nil {
|
||||
return err
|
||||
@ -317,7 +326,6 @@ func newSession(appdir string, args []string, opts options) (*lldbSession, error
|
||||
iosdPath,
|
||||
"--debug",
|
||||
"-u",
|
||||
"-r",
|
||||
"-n",
|
||||
`--args=` + strings.Join(args, " ") + ``,
|
||||
"--bundle", appdir,
|
||||
|
Loading…
Reference in New Issue
Block a user