move_binlog_path_helper_test.go 1.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
package datacoord

import (
	"path"
	"testing"

	"github.com/gogo/protobuf/proto"
	memkv "github.com/milvus-io/milvus/internal/kv/mem"
	"github.com/milvus-io/milvus/internal/proto/datapb"
	"github.com/stretchr/testify/assert"
)

func TestMoveBinlogPathHelper_Start(t *testing.T) {
	Params.Init()
	t.Run("test normal move", func(t *testing.T) {
		var err error
		kv := memkv.NewMemoryKV()

		segment := &datapb.SegmentInfo{ID: 0}
		err = kv.Save(buildSegmentPath(0, 0, 0), proto.MarshalTextString(segment))
		assert.Nil(t, err)

		binlogMeta := &datapb.SegmentFieldBinlogMeta{
			FieldID:    0,
			BinlogPath: "path1",
		}
		err = kv.Save(path.Join(Params.SegmentBinlogSubPath, "0", "0", "path1"), proto.MarshalTextString(binlogMeta))
		assert.Nil(t, err)

		meta, err := NewMeta(kv)

		assert.Nil(t, err)
		helper := NewMoveBinlogPathHelper(kv, meta)
		err = helper.Execute()
		assert.Nil(t, err)

		pbstr, err := kv.Load(buildSegmentPath(0, 0, 0))
		assert.Nil(t, err)
		err = proto.UnmarshalText(pbstr, segment)
		assert.Nil(t, err)
		assert.EqualValues(t, 1, len(segment.Binlogs))
		assert.EqualValues(t, 0, segment.Binlogs[0].FieldID)
		assert.EqualValues(t, []string{"path1"}, segment.Binlogs[0].Binlogs)
	})
}