Commit 228438e0 authored by Elias Naur's avatar Elias Naur

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: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 29edf0f9
......@@ -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)
......
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