improve code coverage for datanode

improve code coverage for collection_replica_test.go
Signed-off-by: yudong.cai <yudong.cai@zilliz.com>
pull/4973/head^2
Cai Yudong 2021-04-19 10:34:56 +08:00 committed by yefu.chen
parent dc7db73251
commit a2041abab4
4 changed files with 51 additions and 17 deletions

View File

@ -129,12 +129,18 @@ func TestReplica_Segment(t *testing.T) {
err = replica.setIsFlushed(0)
assert.NoError(t, err)
err = replica.setStartPosition(0, &internalpb.MsgPosition{})
assert.NoError(t, err)
err = replica.setEndPosition(0, &internalpb.MsgPosition{})
assert.NoError(t, err)
update, err = replica.getSegmentStatisticsUpdates(0)
assert.NoError(t, err)
assert.Nil(t, update.StartPosition)
assert.NotNil(t, update.EndPosition)
err = replica.removeSegment(0)
assert.NoError(t, err)
assert.False(t, replica.hasSegment(0))
})
t.Run("Test errors", func(t *testing.T) {
@ -145,6 +151,17 @@ func TestReplica_Segment(t *testing.T) {
assert.Error(t, err)
assert.Nil(t, seg)
err = replica.setIsFlushed(0)
assert.Error(t, err)
err = replica.setStartPosition(0, &internalpb.MsgPosition{})
assert.Error(t, err)
err = replica.setStartPosition(0, nil)
assert.Error(t, err)
err = replica.setEndPosition(0, &internalpb.MsgPosition{})
assert.Error(t, err)
err = replica.setEndPosition(0, nil)
assert.Error(t, err)
err = replica.updateStatistics(0, 0)
assert.Error(t, err)

View File

@ -130,7 +130,6 @@ func (node *DataNode) Init() error {
default:
return fmt.Errorf("Invalid key: %v", kv.Key)
}
}
replica := newReplica()
@ -140,11 +139,9 @@ func (node *DataNode) Init() error {
chanSize := 100
flushChan := make(chan *flushMsg, chanSize)
node.flushChan = flushChan
node.dataSyncService = newDataSyncService(node.ctx, flushChan, replica, alloc, node.msFactory)
node.dataSyncService.init()
node.metaService = newMetaService(node.ctx, replica, node.masterService)
node.replica = replica
return nil
@ -167,7 +164,6 @@ func (node *DataNode) WatchDmChannels(ctx context.Context, in *datapb.WatchDmCha
}
switch {
case node.State.Load() != internalpb.StateCode_Initializing:
status.Reason = fmt.Sprintf("DataNode %d not initializing!", node.NodeID)
return status, errors.New(status.GetReason())

View File

@ -7,46 +7,63 @@ import (
"github.com/stretchr/testify/assert"
)
const (
collectionID0 = UniqueID(0)
collectionID1 = UniqueID(1)
collectionName0 = "collection_0"
collectionName1 = "collection_1"
)
func TestMetaService_All(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
replica := newReplica()
mFactory := &MasterServiceFactory{}
mFactory.setCollectionID(0)
mFactory.setCollectionName("a-collection")
metaService := newMetaService(ctx, replica, mFactory)
mFactory.setCollectionID(collectionID0)
mFactory.setCollectionName(collectionName0)
ms := newMetaService(ctx, replica, mFactory)
t.Run("Test getCollectionNames", func(t *testing.T) {
names, err := metaService.getCollectionNames(ctx)
names, err := ms.getCollectionNames(ctx)
assert.NoError(t, err)
assert.Equal(t, 1, len(names))
assert.Equal(t, "a-collection", names[0])
assert.Equal(t, collectionName0, names[0])
})
t.Run("Test createCollection", func(t *testing.T) {
hasColletion := metaService.replica.hasCollection(0)
hasColletion := ms.replica.hasCollection(collectionID0)
assert.False(t, hasColletion)
err := metaService.createCollection(ctx, "a-collection")
err := ms.createCollection(ctx, collectionName0)
assert.NoError(t, err)
hasColletion = metaService.replica.hasCollection(0)
hasColletion = ms.replica.hasCollection(collectionID0)
assert.True(t, hasColletion)
})
t.Run("Test loadCollections", func(t *testing.T) {
hasColletion := metaService.replica.hasCollection(1)
hasColletion := ms.replica.hasCollection(collectionID1)
assert.False(t, hasColletion)
mFactory.setCollectionID(1)
mFactory.setCollectionName("a-collection-1")
err := metaService.loadCollections(ctx)
mFactory.setCollectionName(collectionName1)
err := ms.loadCollections(ctx)
assert.NoError(t, err)
hasColletion = metaService.replica.hasCollection(1)
hasColletion = ms.replica.hasCollection(collectionID0)
assert.True(t, hasColletion)
hasColletion = metaService.replica.hasCollection(0)
hasColletion = ms.replica.hasCollection(collectionID1)
assert.True(t, hasColletion)
})
t.Run("Test Init", func(t *testing.T) {
ms1 := newMetaService(ctx, replica, mFactory)
ms1.init()
})
t.Run("Test printCollectionStruct", func(t *testing.T) {
mf := &MetaFactory{}
collectionMeta := mf.CollectionMetaFactory(collectionID0, collectionName0)
printCollectionStruct(collectionMeta)
})
}

View File

@ -114,4 +114,8 @@ func TestParamTable_DataNode(t *testing.T) {
log.Println("MinioBucketName:", name)
})
t.Run("Test sliceIndex", func(t *testing.T) {
idx := Params.sliceIndex()
log.Println("sliceIndex:", idx)
})
}