| 110 | } |
| 111 | |
| 112 | func 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 | } |