]> Cypherpunks repositories - gostls13.git/commitdiff
os: run more of TestExecutable on OpenBSD
authorMichael Hendricks <michael@ndrix.org>
Thu, 22 Jun 2017 02:28:41 +0000 (21:28 -0500)
committerBrad Fitzpatrick <bradfitz@golang.org>
Thu, 22 Jun 2017 04:42:40 +0000 (04:42 +0000)
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 <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/os/executable_test.go

index a6aeb0723f9f6d122dd5dfe29f52ce0cba4a8552..7800844e4207cacfbc202317389b416b916addf5 100644 (file)
@@ -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 {