OLD | NEW |
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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 un, err := Lookup(u.Username) | 52 un, err := Lookup(u.Username) |
53 if err != nil { | 53 if err != nil { |
54 t.Fatalf("Lookup: %v", err) | 54 t.Fatalf("Lookup: %v", err) |
55 } | 55 } |
56 if !reflect.DeepEqual(u, un) { | 56 if !reflect.DeepEqual(u, un) { |
57 t.Errorf("Lookup by userid vs. name didn't match\n"+ | 57 t.Errorf("Lookup by userid vs. name didn't match\n"+ |
58 "LookupId(%d): %#v\n"+ | 58 "LookupId(%d): %#v\n"+ |
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 |
| 63 func TestLookupGroup(t *testing.T) { |
| 64 if skip(t) { |
| 65 return |
| 66 } |
| 67 |
| 68 // Test LookupGroupId on the current user |
| 69 gid := syscall.Getgid() |
| 70 g, err := LookupGroupId(gid) |
| 71 if err != nil { |
| 72 t.Fatalf("LookupGroupId: %v", err) |
| 73 } |
| 74 if e, r := gid, g.Gid; e != r { |
| 75 t.Errorf("expected Gid of %d; got %d", e, r) |
| 76 } |
| 77 if g.Name == "" { |
| 78 t.Fatalf("didn't get a groupname") |
| 79 } |
| 80 |
| 81 members, err := g.Members() |
| 82 if err != nil { |
| 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) |
| 96 } |
| 97 } |
| 98 |
| 99 // Test Lookup by groupname, using the groupname from LookupId |
| 100 gn, err := LookupGroup(g.Name) |
| 101 if err != nil { |
| 102 t.Fatalf("Lookup: %v", err) |
| 103 } |
| 104 if !reflect.DeepEqual(g, gn) { |
| 105 t.Errorf("Lookup by groupid vs. name didn't match\n"+ |
| 106 "LookupId(%d): %#v\n"+ |
| 107 "Lookup(%q): %#v\n", gid, g, g.Name, gn) |
| 108 } |
| 109 } |
OLD | NEW |