Commit f613a7bf authored by Brad Fitzpatrick's avatar Brad Fitzpatrick

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/107300Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
parent 04a27bef
......@@ -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
}
......
......@@ -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
......
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment