MCPcopy
hub / github.com/lindb/lindb / TestStoreFlusher_Commit

Function TestStoreFlusher_Commit

kv/flusher_test.go:71–169  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

69}
70
71func TestStoreFlusher_Commit(t *testing.T) {
72 ctrl := gomock.NewController(t)
73 defer ctrl.Finish()
74
75 builder := table.NewMockBuilder(ctrl)
76 // empty but commit edit log fail
77 family := NewMockFamily(ctrl)
78 gomock.InOrder(
79 family.EXPECT().ID().Return(version.FamilyID(10)),
80 family.EXPECT().commitEditLog(gomock.Any()).Return(false),
81 )
82 flusher := newStoreFlusher(family, func() {})
83 defer flusher.Release()
84 err := flusher.Commit()
85 assert.Error(t, err)
86
87 // empty commit edit log success
88 family = NewMockFamily(ctrl)
89 gomock.InOrder(
90 family.EXPECT().ID().Return(version.FamilyID(10)),
91 family.EXPECT().commitEditLog(gomock.Any()).Return(true),
92 )
93 flusher = newStoreFlusher(family, func() {})
94 defer flusher.Release()
95 flusher.Sequence(1, 10)
96 flusher.Sequence(2, 20)
97 err = flusher.Commit()
98 assert.NoError(t, err)
99
100 gomock.InOrder(
101 family.EXPECT().ID().Return(version.FamilyID(10)),
102 builder.EXPECT().Size().Return(uint32(10)),
103 builder.EXPECT().Close().Return(fmt.Errorf("err")),
104 builder.EXPECT().FileNumber().Return(table.FileNumber(10)),
105 family.EXPECT().removePendingOutput(table.FileNumber(10)),
106 )
107 flusher = newStoreFlusher(family, func() {})
108 defer flusher.Release()
109 f := flusher.(*storeFlusher)
110 f.builder = builder
111 err = flusher.Commit()
112 assert.Error(t, err)
113
114 gomock.InOrder(
115 family.EXPECT().ID().Return(version.FamilyID(10)),
116 builder.EXPECT().Size().Return(uint32(10)),
117 builder.EXPECT().Close().Return(nil),
118 builder.EXPECT().FileNumber().Return(table.FileNumber(10)),
119 builder.EXPECT().MinKey().Return(uint32(1)),
120 builder.EXPECT().MaxKey().Return(uint32(10)),
121 builder.EXPECT().Size().Return(uint32(100)),
122 family.EXPECT().commitEditLog(gomock.Any()).Return(false),
123 builder.EXPECT().FileNumber().Return(table.FileNumber(10)),
124 family.EXPECT().removePendingOutput(table.FileNumber(10)),
125 )
126 flusher = newStoreFlusher(family, func() {})
127 defer flusher.Release()
128 f = flusher.(*storeFlusher)

Callers

nothing calls this directly

Calls 15

FamilyIDTypeAlias · 0.92
FileNumberTypeAlias · 0.92
newStoreFlusherFunction · 0.85
IDMethod · 0.65
commitEditLogMethod · 0.65
ReleaseMethod · 0.65
CommitMethod · 0.65
SequenceMethod · 0.65
SizeMethod · 0.65
CloseMethod · 0.65
FileNumberMethod · 0.65
removePendingOutputMethod · 0.65

Tested by

no test coverage detected