(t *testing.T)
| 69 | } |
| 70 | |
| 71 | func 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) |
nothing calls this directly
no test coverage detected