MCPcopy
hub / github.com/lindb/lindb / TestStoreVersionSet_Recover_err

Function TestStoreVersionSet_Recover_err

kv/version/version_set_test.go:61–158  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

59}
60
61func TestStoreVersionSet_Recover_err(t *testing.T) {
62 initVersionSetTestData()
63 ctrl := gomock.NewController(t)
64 defer func() {
65 writeFileFunc = ioutil.WriteFile
66 renameFunc = os.Rename
67 newBufferReaderFunc = bufioutil.NewBufioEntryReader
68 newBufferWriterFunc = bufioutil.NewBufioEntryWriter
69 readFileFunc = ioutil.ReadFile
70 newEmptyEditLogFunc = newEmptyEditLog
71
72 destroyVersionTestData()
73 ctrl.Finish()
74 }()
75 cache := table.NewMockCache(ctrl)
76
77 vs := NewStoreVersionSet(vsTestPath, cache, 2)
78 // case 1: write manifest name err
79 writeFileFunc = func(filename string, data []byte, perm os.FileMode) error {
80 return fmt.Errorf("err")
81 }
82 err := vs.Recover()
83 assert.Error(t, err)
84 // case 2: remove current file name err
85 writeFileFunc = ioutil.WriteFile
86 renameFunc = func(oldpath, newpath string) error {
87 return fmt.Errorf("err")
88 }
89 err = vs.Recover()
90 assert.Error(t, err)
91 // case 3: new buffer reader err
92 renameFunc = os.Rename
93 err = vs.Recover()
94 assert.NoError(t, err)
95 err = vs.Destroy()
96 assert.NoError(t, err)
97 vs = NewStoreVersionSet(vsTestPath, cache, 2) // reopen
98 newBufferReaderFunc = func(fileName string) (reader bufioutil.BufioEntryReader, err error) {
99 return nil, fmt.Errorf("ere")
100 }
101 err = vs.Recover()
102 assert.Error(t, err)
103 // case 4: read edit log err
104 bufReader := bufioutil.NewMockBufioEntryReader(ctrl)
105 newBufferReaderFunc = func(fileName string) (reader bufioutil.BufioEntryReader, err error) {
106 return bufReader, nil
107 }
108 gomock.InOrder(
109 bufReader.EXPECT().Next().Return(true),
110 bufReader.EXPECT().Read().Return(nil, fmt.Errorf("err")),
111 bufReader.EXPECT().Close().Return(fmt.Errorf("err")).AnyTimes(),
112 )
113 err = vs.Recover()
114 assert.Error(t, err)
115 // case 5: unmarshal edit log err
116 editLog := NewMockEditLog(ctrl)
117 newEmptyEditLogFunc = func() EditLog {
118 return editLog

Callers

nothing calls this directly

Calls 13

RecoverMethod · 0.95
DestroyMethod · 0.95
initVersionSetTestDataFunction · 0.85
destroyVersionTestDataFunction · 0.85
NewStoreVersionSetFunction · 0.85
FamilyIDTypeAlias · 0.85
NextMethod · 0.65
ReadMethod · 0.65
CloseMethod · 0.65
unmarshalMethod · 0.65
FamilyIDMethod · 0.65
WriteMethod · 0.65

Tested by

no test coverage detected