1
0
mirror of https://github.com/golang/go synced 2024-11-18 09:04:49 -07:00

cmd/dist, os/user: test os/user in osusergo mode as well, fix plan9 & windows

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>
This commit is contained in:
Brad Fitzpatrick 2018-04-16 17:41:24 +00:00
parent 04a27bef6f
commit f613a7bf33
3 changed files with 29 additions and 1 deletions

12
src/cmd/dist/test.go vendored
View 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
}

View 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

View 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)