From: Michael Hendricks Date: Thu, 22 Jun 2017 02:28:41 +0000 (-0500) Subject: os: run more of TestExecutable on OpenBSD X-Git-Tag: go1.9beta2~32 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=b3301865a025fda72b8d327fad4461bb7bf68600;p=gostls13.git os: run more of TestExecutable on OpenBSD On OpenBSD, Executable relies on Args[0]. Removing the forgery on that OS allows the rest of the test to run. See #19453 Change-Id: Idf99f86894de5c702893791bc3684f8665f4019d Reviewed-on: https://go-review.googlesource.com/46398 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/os/executable_test.go b/src/os/executable_test.go index a6aeb0723f..7800844e42 100644 --- a/src/os/executable_test.go +++ b/src/os/executable_test.go @@ -29,12 +29,6 @@ func TestExecutable(t *testing.T) { t.Fatalf("filepath.Rel: %v", err) } - if runtime.GOOS == "openbsd" { - // The rest of the test doesn't work on OpenBSD, - // which relies on argv[0]. - t.Skipf("skipping remainder of test on %s", runtime.GOOS) - } - cmd := &osexec.Cmd{} // make child start with a relative program path cmd.Dir = dir @@ -42,6 +36,10 @@ func TestExecutable(t *testing.T) { // forge argv[0] for child, so that we can verify we could correctly // get real path of the executable without influenced by argv[0]. cmd.Args = []string{"-", "-test.run=XXXX"} + if runtime.GOOS == "openbsd" { + // OpenBSD relies on argv[0] + cmd.Args[0] = fn + } cmd.Env = append(os.Environ(), fmt.Sprintf("%s=1", executable_EnvVar)) out, err := cmd.CombinedOutput() if err != nil {