|
|
@@ -637,11 +637,21 @@ func TestContext_Timeout(t *testing.T) {
|
|
|
}
|
|
|
|
|
|
type recordingFrameHeaderObserver struct {
|
|
|
- t *testing.T
|
|
|
+ t *testing.T
|
|
|
+ mu sync.Mutex
|
|
|
frames []ObservedFrameHeader
|
|
|
}
|
|
|
+
|
|
|
func (r *recordingFrameHeaderObserver) ObserveFrameHeader(ctx context.Context, frm ObservedFrameHeader) {
|
|
|
+ r.mu.Lock()
|
|
|
r.frames = append(r.frames, frm)
|
|
|
+ r.mu.Unlock()
|
|
|
+}
|
|
|
+
|
|
|
+func (r *recordingFrameHeaderObserver) getFrames() []ObservedFrameHeader {
|
|
|
+ r.mu.Lock()
|
|
|
+ defer r.mu.Unlock()
|
|
|
+ return r.frames
|
|
|
}
|
|
|
|
|
|
func TestFrameHeaderObserver(t *testing.T) {
|
|
|
@@ -649,6 +659,7 @@ func TestFrameHeaderObserver(t *testing.T) {
|
|
|
defer srv.Stop()
|
|
|
|
|
|
cluster := testCluster(srv.Address, defaultProto)
|
|
|
+ cluster.NumConns = 1
|
|
|
observer := &recordingFrameHeaderObserver{t: t}
|
|
|
cluster.FrameHeaderObserver = observer
|
|
|
|
|
|
@@ -661,14 +672,16 @@ func TestFrameHeaderObserver(t *testing.T) {
|
|
|
t.Fatal(err)
|
|
|
}
|
|
|
|
|
|
- if len(observer.frames) != 2 {
|
|
|
- t.Fatalf("Expected to receive 2 frames, instead received %d", len(observer.frames))
|
|
|
+ frames := observer.getFrames()
|
|
|
+
|
|
|
+ if len(frames) != 2 {
|
|
|
+ t.Fatalf("Expected to receive 2 frames, instead received %d", len(frames))
|
|
|
}
|
|
|
- readyFrame := observer.frames[0]
|
|
|
+ readyFrame := frames[0]
|
|
|
if readyFrame.Opcode != byte(opReady) {
|
|
|
t.Fatalf("Expected to receive ready frame, instead received frame of opcode %d", readyFrame.Opcode)
|
|
|
}
|
|
|
- voidResultFrame := observer.frames[1]
|
|
|
+ voidResultFrame := frames[1]
|
|
|
if voidResultFrame.Opcode != byte(opResult) {
|
|
|
t.Fatalf("Expected to receive result frame, instead received frame of opcode %d", voidResultFrame.Opcode)
|
|
|
}
|