uid_unix_test.go (1761B)
1 //go:build unix 2 3 package diskfs 4 5 import ( 6 "os/user" 7 "strconv" 8 "testing" 9 ) 10 11 func TestIsGroupLeader(t *testing.T) { 12 usr, err := user.Current() 13 if err != nil { 14 t.Fatalf("get current user: %v", err) 15 } 16 grpids, err := usr.GroupIds() 17 if err != nil { 18 t.Fatalf("get groups: %v", err) 19 } 20 tests := []struct { 21 name string 22 uid string 23 group string 24 want bool 25 }{ 26 {"0", "root", "root", true}, 27 } 28 for _, id := range grpids { 29 grp, err := user.LookupGroupId(id) 30 if err != nil { 31 t.Fatalf("lookupgroupid: %v", err) 32 } 33 tests = append(tests, struct { 34 name string 35 uid string 36 group string 37 want bool 38 }{strconv.Itoa(len(tests)), usr.Username, grp.Name, usr.Username == grp.Name}) 39 } 40 for _, test := range tests { 41 got := isGroupLeader(test.group, test.uid) 42 if got != test.want { 43 t.Errorf("%s: isGroupLeader(%s, %s) = %t, want: %t", 44 test.name, test.group, test.uid, got, test.want) 45 } 46 } 47 } 48 49 func TestIsGroupMember(t *testing.T) { 50 usr, err := user.Current() 51 if err != nil { 52 t.Fatalf("get current user: %v", err) 53 } 54 grpids, err := usr.GroupIds() 55 if err != nil { 56 t.Fatalf("get groups: %v", err) 57 } 58 tests := []struct { 59 name string 60 uid string 61 group string 62 want bool 63 }{ 64 {"0", "root", "root", true}, 65 } 66 for _, id := range grpids { 67 grp, err := user.LookupGroupId(id) 68 if err != nil { 69 t.Fatalf("lookupgroupid: %v", err) 70 } 71 tests = append(tests, struct { 72 name string 73 uid string 74 group string 75 want bool 76 }{strconv.Itoa(len(tests)), usr.Username, grp.Name, true}) 77 } 78 for _, test := range tests { 79 got := isGroupMember(test.group, test.uid) 80 if got != test.want { 81 t.Errorf("%s: isGroupMember(%s, %s) = %t, want: %t", 82 test.name, test.group, test.uid, got, test.want) 83 } 84 } 85 }