lib9p

Go 9P library.
Log | Files | Refs | LICENSE

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 }