]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/dist, os/user: test os/user in osusergo mode as well, fix plan9 & windows
authorBrad Fitzpatrick <bradfitz@golang.org>
Mon, 16 Apr 2018 17:41:24 +0000 (17:41 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 16 Apr 2018 19:38:57 +0000 (19:38 +0000)
Would've caught two regressions so far, and found two more.

Updates #24841
Updates #24845 (package net remains)

Change-Id: I57ad06eb54e04b8c99b5d2e7f24c77ad865224e8
Reviewed-on: https://go-review.googlesource.com/107300
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/dist/test.go
src/os/user/lookup_stubs.go
src/os/user/user_test.go

index 1c1d8b6ffbd490e1347e51ae7aa72aec200a6093..948c6f890fb290faa412cf05d63bb8e5e1a5146e 100644 (file)
@@ -407,6 +407,18 @@ func (t *tester) registerTests() {
                }
        }
 
+       // Test the os/user package in the pure-Go mode too.
+       if !t.compileOnly {
+               t.tests = append(t.tests, distTest{
+                       name:    "osusergo",
+                       heading: "os/user with tag osusergo",
+                       fn: func(dt *distTest) error {
+                               t.addCmd(dt, "src", t.goTest(), t.timeout(300), "-tags=osusergo", "os/user")
+                               return nil
+                       },
+               })
+       }
+
        if t.race {
                return
        }
index dc5ab4005590fdb3a28ff0d2df35fb8e137427ec..f7d138ff46801d22fdb57da398cd2b39a09f3bd2 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build !cgo,!windows,!plan9 android osusergo
+// +build !cgo,!windows,!plan9 android osusergo,!windows,!plan9
 
 package user
 
index 02cd595349b5e1933335efdcb443888b5d9c9197..8fd760e64981be6fc20fd150fd9b50ff48796c2a 100644 (file)
@@ -5,6 +5,8 @@
 package user
 
 import (
+       "internal/testenv"
+       "os"
        "runtime"
        "testing"
 )
@@ -16,6 +18,20 @@ func checkUser(t *testing.T) {
 }
 
 func TestCurrent(t *testing.T) {
+       // The Go builders (in particular the ones using containers)
+       // often have minimal environments without $HOME or $USER set,
+       // which breaks Current which relies on those working as a
+       // fallback.
+       // TODO: we should fix that (Issue 24884) and remove these
+       // workarounds.
+       if testenv.Builder() != "" && runtime.GOOS != "windows" && runtime.GOOS != "plan9" {
+               if os.Getenv("HOME") == "" {
+                       os.Setenv("HOME", "/tmp")
+               }
+               if os.Getenv("USER") == "" {
+                       os.Setenv("USER", "gobuilder")
+               }
+       }
        u, err := Current()
        if err != nil {
                t.Fatalf("Current: %v (got %#v)", err, u)