github.com/aporeto-inc/trireme-lib@v10.358.0+incompatible/monitor/extractors/uid_test.go (about) 1 // +build !windows 2 3 package extractors 4 5 import ( 6 "reflect" 7 "strconv" 8 "testing" 9 10 "go.aporeto.io/trireme-lib/common" 11 "go.aporeto.io/trireme-lib/policy" 12 ) 13 14 func createDummyPolicy(event *common.EventInfo) *policy.PURuntime { 15 runtimeTags := policy.NewTagStore() 16 runtimeTags.AppendKeyValue("@sys:test", "valid") 17 runtimeTags.AppendKeyValue("@app:linux:test", "valid") 18 runtimeIps := policy.ExtendedMap{"bridge": "0.0.0.0/0"} 19 options := &policy.OptionsType{ 20 CgroupName: event.PUID, 21 CgroupMark: strconv.Itoa(105), 22 UserID: event.PUID, 23 Services: nil, 24 } 25 return policy.NewPURuntime(event.Name, int(event.PID), "", runtimeTags, runtimeIps, common.UIDLoginPU, options) 26 } 27 func TestUIDMetadataExtractor(t *testing.T) { 28 var marshaledgot, marshalledwant []byte 29 type args struct { 30 event *common.EventInfo 31 } 32 e := &common.EventInfo{ 33 PID: 100, 34 Name: "TestPU", 35 Tags: []string{"test=valid"}, 36 PUID: "TestPU", 37 Services: nil, 38 PUType: common.LinuxProcessPU, 39 } 40 tests := []struct { 41 name string 42 args args 43 want *policy.PURuntime 44 wantErr bool 45 }{ 46 { 47 name: "Invalid Tags", 48 args: args{ 49 event: &common.EventInfo{ 50 Tags: []string{"InvalidTagFormat"}, 51 }, 52 }, 53 want: nil, 54 wantErr: true, 55 }, 56 { 57 name: "Valid Tags", 58 args: args{ 59 event: e, 60 }, 61 want: createDummyPolicy(e), 62 wantErr: false, 63 }, 64 65 // TODO: Add test cases. 66 } 67 for _, tt := range tests { 68 t.Run(tt.name, func(t *testing.T) { 69 got, err := UIDMetadataExtractor(tt.args.event) 70 if (err != nil) != tt.wantErr { 71 t.Errorf("UIDMetadataExtractor() error = %v, wantErr %v", err, tt.wantErr) 72 return 73 } 74 if got != nil && tt.want != nil { 75 marshaledgot, _ = got.MarshalJSON() 76 marshalledwant, _ = tt.want.MarshalJSON() 77 } 78 if !reflect.DeepEqual(marshaledgot, marshalledwant) { 79 t.Errorf("\nUIDMetadataExtractor()\ngot = %s\n, want %s\n", string(marshaledgot), string(marshalledwant)) 80 } 81 }) 82 } 83 }