MCPcopy
hub / github.com/lindb/lindb / TestCompactJob_merge_compact_merge_fail

Function TestCompactJob_merge_compact_merge_fail

kv/compact_job_test.go:98–146  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

96}
97
98func TestCompactJob_merge_compact_merge_fail(t *testing.T) {
99 ctrl := gomock.NewController(t)
100 defer ctrl.Finish()
101
102 snapshot := version.NewMockSnapshot(ctrl)
103 reader := table.NewMockReader(ctrl)
104 gomock.InOrder(
105 reader.EXPECT().Iterator().Return(generateIterator(ctrl, map[uint32][]byte{
106 1: []byte("value1"),
107 })),
108 reader.EXPECT().Iterator().Return(generateIterator(ctrl, map[uint32][]byte{})),
109 )
110 snapshot.EXPECT().GetReader(gomock.Any()).Return(reader, nil).MaxTimes(2)
111 merge := NewMockMerger(ctrl)
112 merge.EXPECT().Merge(gomock.Any(), gomock.Any()).Return(fmt.Errorf("err"))
113 family := generateMockFamily(ctrl, func(flusher Flusher) (Merger, error) {
114 return merge, nil
115 })
116
117 family.EXPECT().familyInfo().Return("family").AnyTimes()
118 f1 := version.NewFileMeta(1, 1, 10, 100)
119 f4 := version.NewFileMeta(4, 30, 100, 100)
120 compaction := version.NewCompaction(1, 0, []*version.FileMeta{f1}, []*version.FileMeta{f4})
121 state := newCompactionState(1000, snapshot, compaction)
122 compactJob1 := newCompactJob(family, state, nil)
123 err := compactJob1.Run()
124 assert.Error(t, err)
125
126 gomock.InOrder(
127 reader.EXPECT().Iterator().Return(generateIterator(ctrl, map[uint32][]byte{
128 1: []byte("value1"),
129 })),
130 reader.EXPECT().Iterator().Return(generateIterator(ctrl, map[uint32][]byte{2: []byte("value2")})),
131 )
132 snapshot.EXPECT().GetReader(gomock.Any()).Return(reader, nil).MaxTimes(2)
133 merge.EXPECT().Merge(uint32(1), gomock.Any()).Return(fmt.Errorf("err"))
134 compactJob1 = newCompactJob(family, state, nil)
135 err = compactJob1.Run()
136 assert.Error(t, err)
137
138 // create merger failure
139 compactJob1 = newCompactJob(family, state, nil)
140 compactJob2 := compactJob1.(*compactJob)
141 compactJob2.newMerger = func(flusher Flusher) (Merger, error) {
142 return nil, fmt.Errorf("err")
143 }
144 err = compactJob2.Run()
145 assert.Error(t, err)
146}
147
148func TestCompactJob_merge_doMerge_fail(t *testing.T) {
149 ctrl := gomock.NewController(t)

Callers

nothing calls this directly

Calls 12

NewFileMetaFunction · 0.92
NewCompactionFunction · 0.92
generateMockFamilyFunction · 0.85
newCompactionStateFunction · 0.85
newCompactJobFunction · 0.85
generateIteratorFunction · 0.70
IteratorMethod · 0.65
GetReaderMethod · 0.65
MergeMethod · 0.65
familyInfoMethod · 0.65
RunMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected