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>
}
}
+ // 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
}
// 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
package user
import (
+ "internal/testenv"
+ "os"
"runtime"
"testing"
)
}
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)