package acl_test import ( "testing" "github.com/nspcc-dev/neofs-api-go/v2/acl" aclGrpc "github.com/nspcc-dev/neofs-api-go/v2/acl/grpc" acltest "github.com/nspcc-dev/neofs-api-go/v2/acl/test" ) func BenchmarkTable_ToGRPCMessage(b *testing.B) { const size = 4 tb := new(acl.Table) rs := make([]*acl.Record, size) for i := range rs { fs := make([]*acl.HeaderFilter, size) for j := range fs { fs[j] = acltest.GenerateFilter(false) } ts := make([]*acl.Target, size) for j := range ts { ts[j] = acltest.GenerateTarget(false) } rs[i] = new(acl.Record) rs[i].SetFilters(fs) rs[i].SetTargets(ts) } tb.SetRecords(rs) raw := tb.ToGRPCMessage() b.Run("to grpc message", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { raw := tb.ToGRPCMessage() if len(tb.GetRecords()) != len(raw.(*aclGrpc.EACLTable).Records) { b.FailNow() } } }) b.Run("from grpc message", func(b *testing.B) { b.ReportAllocs() for i := 0; i < b.N; i++ { tb := new(acl.Table) if tb.FromGRPCMessage(raw) != nil { b.FailNow() } } }) }