Skip to content

Commit

Permalink
Revert "cmd/go, misc: rework cwd handling for iOS tests"
Browse files Browse the repository at this point in the history
This reverts commit 593ea3b.

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 <[email protected]>
  • Loading branch information
Elias Naur committed Mar 4, 2017
1 parent 2b780af commit 3ce5371
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 24 deletions.
14 changes: 9 additions & 5 deletions misc/ios/go_darwin_arm_exec.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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`)

Expand Down
22 changes: 3 additions & 19 deletions src/cmd/go/internal/test/test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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}}
Expand Down

0 comments on commit 3ce5371

Please sign in to comment.