aboutsummaryrefslogtreecommitdiff
path: root/weed/cluster/lock_manager/lock_ring_test.go
blob: 9025309ecfd7e5945c27a648956d9dd5c42d6ea2 (plain)
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
package lock_manager

import (
	"github.com/seaweedfs/seaweedfs/weed/pb"
	"github.com/stretchr/testify/assert"
	"testing"
	"time"
)

func TestAddServer(t *testing.T) {
	r := NewLockRing(100 * time.Millisecond)
	r.AddServer("localhost:8080")
	assert.Equal(t, 1, len(r.snapshots))
	r.AddServer("localhost:8081")
	r.AddServer("localhost:8082")
	r.AddServer("localhost:8083")
	r.AddServer("localhost:8084")
	r.RemoveServer("localhost:8084")
	r.RemoveServer("localhost:8082")
	r.RemoveServer("localhost:8080")

	assert.Equal(t, 8, len(r.snapshots))

	time.Sleep(110 * time.Millisecond)

	assert.Equal(t, 2, len(r.snapshots))

}

func TestLockRing(t *testing.T) {
	r := NewLockRing(100 * time.Millisecond)
	r.SetSnapshot([]pb.ServerAddress{"localhost:8080", "localhost:8081"})
	assert.Equal(t, 1, len(r.snapshots))
	r.SetSnapshot([]pb.ServerAddress{"localhost:8080", "localhost:8081", "localhost:8082"})
	assert.Equal(t, 2, len(r.snapshots))
	time.Sleep(110 * time.Millisecond)
	r.SetSnapshot([]pb.ServerAddress{"localhost:8080", "localhost:8081", "localhost:8082", "localhost:8083"})
	assert.Equal(t, 3, len(r.snapshots))
	time.Sleep(110 * time.Millisecond)
	assert.Equal(t, 2, len(r.snapshots))
	r.SetSnapshot([]pb.ServerAddress{"localhost:8080", "localhost:8081", "localhost:8082", "localhost:8083", "localhost:8084"})
	assert.Equal(t, 3, len(r.snapshots))
}