MCPcopy Create free account
hub / github.com/foxcpp/maddy / BenchDelivery

Function BenchDelivery

internal/testutils/bench_delivery.go:112–141  ·  view source on GitHub ↗
(b *testing.B, target module.DeliveryTarget, sender string, recipientTemplates []string)

Source from the content-addressed store, hash-verified

110}
111
112func BenchDelivery(b *testing.B, target module.DeliveryTarget, sender string, recipientTemplates []string) {
113 meta, header, body := RandomMsg(b)
114
115 benchCtx := context.Background()
116
117 b.ReportAllocs()
118 b.ResetTimer()
119 for i := 0; i < b.N; i++ {
120 delivery, err := target.StartDelivery(benchCtx, &meta, sender)
121 if err != nil {
122 b.Fatal(err)
123 }
124
125 for i, rcptTemplate := range recipientTemplates {
126 rcpt := strings.ReplaceAll(rcptTemplate, "X", strconv.Itoa(i))
127
128 if err := delivery.AddRcpt(benchCtx, rcpt, smtp.RcptOptions{}); err != nil {
129 b.Fatal(err)
130 }
131 }
132
133 if err := delivery.Body(benchCtx, header, body); err != nil {
134 b.Fatal(err)
135 }
136
137 if err := delivery.Commit(benchCtx); err != nil {
138 b.Fatal(err)
139 }
140 }
141}

Calls 5

RandomMsgFunction · 0.85
StartDeliveryMethod · 0.65
AddRcptMethod · 0.65
BodyMethod · 0.65
CommitMethod · 0.65