LEFT | RIGHT |
1 // Copyright 2011 The Go Authors. All rights reserved. | 1 // Copyright 2011 The Go Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style | 2 // Use of this source code is governed by a BSD-style |
3 // license that can be found in the LICENSE file. | 3 // license that can be found in the LICENSE file. |
4 | 4 |
5 package user | 5 package user |
6 | 6 |
7 import ( | 7 import ( |
8 "os" | 8 "os" |
9 "reflect" | 9 "reflect" |
10 "runtime" | 10 "runtime" |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 "Lookup(%q): %#v\n", uid, u, u.Username, un) | 59 "Lookup(%q): %#v\n", uid, u, u.Username, un) |
60 } | 60 } |
61 } | 61 } |
62 | 62 |
63 func TestLookupGroup(t *testing.T) { | 63 func TestLookupGroup(t *testing.T) { |
64 if skip(t) { | 64 if skip(t) { |
65 return | 65 return |
66 } | 66 } |
67 | 67 |
68 // Test LookupGroupId on the current user | 68 // Test LookupGroupId on the current user |
69 gid := syscall.Getgid() | 69 gid := syscall.Getgid() |
70 g, err := LookupGroupId(gid) | 70 g, err := LookupGroupId(gid) |
71 if err != nil { | 71 if err != nil { |
72 t.Fatalf("LookupGroupId: %v", err) | 72 t.Fatalf("LookupGroupId: %v", err) |
73 } | 73 } |
74 if e, r := gid, g.Gid; e != r { | 74 if e, r := gid, g.Gid; e != r { |
75 t.Errorf("expected Gid of %d; got %d", e, r) | 75 t.Errorf("expected Gid of %d; got %d", e, r) |
76 } | 76 } |
77 » if g.Groupname == "" { | 77 » if g.Name == "" { |
78 t.Fatalf("didn't get a groupname") | 78 t.Fatalf("didn't get a groupname") |
79 } | 79 } |
80 | 80 |
81 » for _, member := range g.Members { | 81 » members, err := g.Members() |
82 » » if _, err := Lookup(member); err != nil { | 82 » if err != nil { |
83 » » » t.Errorf("expected a valid group member; user=%v, err=%v
", member, err) | 83 » » t.Fatalf("g.Members: %v", err) |
| 84 » } |
| 85 » for _, user := range members { |
| 86 » » u, err := Lookup(user) |
| 87 » » if err != nil { |
| 88 » » » t.Errorf("expected a valid group member; user=%v, err=%v
", user, err) |
| 89 » » } |
| 90 » » isMember, err := u.In(g) |
| 91 » » if err != nil { |
| 92 » » » t.Fatalf("u.In: %v", err) |
| 93 » » } |
| 94 » » if !isMember { |
| 95 » » » t.Errorf("expected user to be group member; user=%v, gro
up=%v, err=%v", user, g.Name, err) |
84 } | 96 } |
85 } | 97 } |
86 | 98 |
87 // Test Lookup by groupname, using the groupname from LookupId | 99 // Test Lookup by groupname, using the groupname from LookupId |
88 » gn, err := LookupGroup(g.Groupname) | 100 » gn, err := LookupGroup(g.Name) |
89 if err != nil { | 101 if err != nil { |
90 t.Fatalf("Lookup: %v", err) | 102 t.Fatalf("Lookup: %v", err) |
91 } | 103 } |
92 if !reflect.DeepEqual(g, gn) { | 104 if !reflect.DeepEqual(g, gn) { |
93 t.Errorf("Lookup by groupid vs. name didn't match\n"+ | 105 t.Errorf("Lookup by groupid vs. name didn't match\n"+ |
94 "LookupId(%d): %#v\n"+ | 106 "LookupId(%d): %#v\n"+ |
95 » » » "Lookup(%q): %#v\n", gid, g, g.Groupname, gn) | 107 » » » "Lookup(%q): %#v\n", gid, g, g.Name, gn) |
96 } | 108 } |
97 } | 109 } |
LEFT | RIGHT |