mirror of
https://github.com/golang/go
synced 2024-11-18 10:04:43 -07:00
os/user: fake Current on Android
On Android devices where the stub fallback for Current fails to extract a User from the environment, return a dummy fallback instead of failing. While we're here, use / instead of /home/nacl for the NaCL fallback. Hopefully fixes the Android builder. Change-Id: Ia29304fbc224ee5f9c0f4e706d1756f765a7eae5 Reviewed-on: https://go-review.googlesource.com/37960 Run-TryBot: Elias Naur <elias.naur@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
29edf0f9fe
commit
228438e097
@ -26,7 +26,9 @@ func current() (*User, error) {
|
||||
Name: "", // ignored
|
||||
HomeDir: os.Getenv("HOME"),
|
||||
}
|
||||
if runtime.GOOS == "nacl" {
|
||||
// On NaCL and Android, return a dummy user instead of failing.
|
||||
switch runtime.GOOS {
|
||||
case "nacl":
|
||||
if u.Uid == "" {
|
||||
u.Uid = "1"
|
||||
}
|
||||
@ -34,7 +36,17 @@ func current() (*User, error) {
|
||||
u.Username = "nacl"
|
||||
}
|
||||
if u.HomeDir == "" {
|
||||
u.HomeDir = "/home/nacl"
|
||||
u.HomeDir = "/"
|
||||
}
|
||||
case "android":
|
||||
if u.Uid == "" {
|
||||
u.Uid = "1"
|
||||
}
|
||||
if u.Username == "" {
|
||||
u.Username = "android"
|
||||
}
|
||||
if u.HomeDir == "" {
|
||||
u.HomeDir = "/sdcard"
|
||||
}
|
||||
}
|
||||
// cgo isn't available, but if we found the minimum information
|
||||
|
@ -16,9 +16,6 @@ func checkUser(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestCurrent(t *testing.T) {
|
||||
if runtime.GOOS == "android" {
|
||||
t.Skipf("skipping on %s", runtime.GOOS)
|
||||
}
|
||||
u, err := Current()
|
||||
if err != nil {
|
||||
t.Fatalf("Current: %v (got %#v)", err, u)
|
||||
|
Loading…
Reference in New Issue
Block a user