From a2041abab479737a2783eb2ac71d23f05cedcf9f Mon Sep 17 00:00:00 2001 From: Cai Yudong Date: Mon, 19 Apr 2021 10:34:56 +0800 Subject: [PATCH] improve code coverage for datanode improve code coverage for collection_replica_test.go Signed-off-by: yudong.cai --- internal/datanode/collection_replica_test.go | 17 ++++++++ internal/datanode/data_node.go | 4 -- internal/datanode/meta_service_test.go | 43 ++++++++++++++------ internal/datanode/param_table_test.go | 4 ++ 4 files changed, 51 insertions(+), 17 deletions(-) diff --git a/internal/datanode/collection_replica_test.go b/internal/datanode/collection_replica_test.go index 2bc42747b9..e5ebbddcb4 100644 --- a/internal/datanode/collection_replica_test.go +++ b/internal/datanode/collection_replica_test.go @@ -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) diff --git a/internal/datanode/data_node.go b/internal/datanode/data_node.go index c7f81f90fe..d96b40bb66 100644 --- a/internal/datanode/data_node.go +++ b/internal/datanode/data_node.go @@ -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()) diff --git a/internal/datanode/meta_service_test.go b/internal/datanode/meta_service_test.go index 0b3ff2cfb3..3877ead407 100644 --- a/internal/datanode/meta_service_test.go +++ b/internal/datanode/meta_service_test.go @@ -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) + }) } diff --git a/internal/datanode/param_table_test.go b/internal/datanode/param_table_test.go index 9ab2e5c488..1fe8cbce59 100644 --- a/internal/datanode/param_table_test.go +++ b/internal/datanode/param_table_test.go @@ -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) + }) }