From 3ce5371aaf6abc63ade70447198e9a88cb186910 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Sat, 4 Mar 2017 01:15:14 +0100 Subject: [PATCH] Revert "cmd/go, misc: rework cwd handling for iOS tests" This reverts commit 593ea3b3606a16da39e38406e22e373eeb944287. Replaced by a improved strategy later in the CL relation chain. Change-Id: I6963e4d1bf38e7028cf545a953e28054d83548 Change-Id: I6963e4d1bf38e7028cf545a953e28054d8354870 Reviewed-on: https://go-review.googlesource.com/36067 Reviewed-by: David Crawshaw --- misc/ios/go_darwin_arm_exec.go | 14 +++++++++----- src/cmd/go/internal/test/test.go | 22 +++------------------- 2 files changed, 12 insertions(+), 24 deletions(-) diff --git a/misc/ios/go_darwin_arm_exec.go b/misc/ios/go_darwin_arm_exec.go index fce71a0597..ad7a72c9a6 100644 --- a/misc/ios/go_darwin_arm_exec.go +++ b/misc/ios/go_darwin_arm_exec.go @@ -212,11 +212,6 @@ func run(bin string, args []string) (err error) { var opts options opts, args = parseArgs(args) - // Pass the suffix for the current working directory as the - // first argument to the test. For iOS, cmd/go generates - // special handling of this argument. - args = append([]string{"cwdSuffix=" + pkgpath}, args...) - // ios-deploy invokes lldb to give us a shell session with the app. s, err := newSession(appdir, args, opts) if err != nil { @@ -254,6 +249,15 @@ func run(bin string, args []string) (err error) { s.doCmd("run", "stop reason = signal SIGUSR2", 20*time.Second) + // Move the current working directory into the faux gopath. + if pkgpath != "src" { + s.do(`breakpoint delete 1`) + s.do(`expr char* $mem = (char*)malloc(512)`) + s.do(`expr $mem = (char*)getwd($mem, 512)`) + s.do(`expr $mem = (char*)strcat($mem, "/` + pkgpath + `")`) + s.do(`call (void)chdir($mem)`) + } + startTestsLen := s.out.Len() fmt.Fprintln(s.in, `process continue`) diff --git a/src/cmd/go/internal/test/test.go b/src/cmd/go/internal/test/test.go index feafaad2a8..6a02f5ab2e 100644 --- a/src/cmd/go/internal/test/test.go +++ b/src/cmd/go/internal/test/test.go @@ -1562,28 +1562,12 @@ func coverRegisterFile(fileName string, counter []uint32, pos []uint32, numStmts func main() { {{if .IsIOS}} // Send a SIGUSR2, which will be intercepted by LLDB to - // tell the test harness that installation was successful. - // See misc/ios/go_darwin_arm_exec.go. + // tell the test harness that installation was successful, + // and to give the exec script a chance set the current + // working directory. See misc/ios/go_darwin_arm_exec.go. signal.Notify(make(chan os.Signal), syscall.SIGUSR2) syscall.Kill(0, syscall.SIGUSR2) signal.Reset(syscall.SIGUSR2) - - // The first argument supplied to an iOS test is an offset - // suffix for the current working directory. - // Process it here, and remove it from os.Args. - const hdr = "cwdSuffix=" - if len(os.Args) < 2 || len(os.Args[1]) <= len(hdr) || os.Args[1][:len(hdr)] != hdr { - panic("iOS test not passed a working directory suffix") - } - suffix := os.Args[1][len(hdr):] - dir, err := os.Getwd() - if err != nil { - panic(err) - } - if err := os.Chdir(dir + "/" + suffix); err != nil { - panic(err) - } - os.Args = append([]string{os.Args[0]}, os.Args[2:]...) {{end}} {{if .CoverEnabled}} -- 2.48.1