This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
package upstream
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestUnavailableConnectionNeverClaimsWireSubmitTime(t *testing.T) {
|
||||
conn := &connection{closed: true}
|
||||
cmd := submitCommandForPacketTest("3.0")
|
||||
parts, err := splitSubmitContent(cmd.CMPP.MsgFmt, cmd.Content)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, _, result, err := conn.submitPart(context.Background(), cmd, parts[0])
|
||||
if err == nil || result.FirstWireSubmitAt != nil || result.WireTimeSource != "not_written" {
|
||||
t.Fatalf("invalid pre-write timing: %+v / %v", result, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSegmentCarriesActualWireTimeAndReceiptRequest(t *testing.T) {
|
||||
cmd := submitCommandForPacketTest("3.0")
|
||||
cmd.CMPP.RegisteredDelivery = 1
|
||||
result := submitResult(cmd, 1, "upstream-1", "timeout", "SUBMIT_TIMEOUT", "no response")
|
||||
at := time.Now().UTC().Add(-5 * time.Second)
|
||||
result.FirstWireSubmitAt = &at
|
||||
result.WireTimeSource = "gateway_write_complete"
|
||||
segment := submitSegmentResult(submitPart{PkTotal: 2, PkNumber: 1}, 1, "upstream-1", result)
|
||||
if segment.FirstWireSubmitAt == nil || !segment.FirstWireSubmitAt.Equal(at) || segment.WireTimeSource != "gateway_write_complete" || !segment.ReceiptRequested {
|
||||
t.Fatalf("wire timing was lost: %+v", segment)
|
||||
}
|
||||
if !segment.SubmittedAt.After(*segment.FirstWireSubmitAt) {
|
||||
t.Fatal("response timestamp must not replace earlier wire timestamp")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user