package engine import ( "os" "testing" "github.com/stretchr/testify/require" ) func TestRemoveShard(t *testing.T) { const numOfShards = 6 e := testNewEngineWithShardNum(t, numOfShards) t.Cleanup(func() { e.Close() os.RemoveAll(t.Name()) }) require.Equal(t, numOfShards, len(e.shardPools)) require.Equal(t, numOfShards, len(e.shards)) removedNum := numOfShards / 2 mSh := make(map[string]bool, numOfShards) for i, sh := range e.DumpInfo().Shards { if i == removedNum { break } mSh[sh.ID.String()] = true } for id, remove := range mSh { if remove { e.removeShards(id) } } require.Equal(t, numOfShards-removedNum, len(e.shardPools)) require.Equal(t, numOfShards-removedNum, len(e.shards)) for id, removed := range mSh { _, ok := e.shards[id] require.True(t, ok != removed) } }