mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
integration,clientv3/integration: test LeaseLeases API
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
This commit is contained in:
parent
f8141db2c7
commit
556c1a1fe0
@ -574,6 +574,37 @@ func TestLeaseTimeToLiveLeaseNotFound(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestLeaseLeases(t *testing.T) {
|
||||
defer testutil.AfterTest(t)
|
||||
|
||||
clus := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1})
|
||||
defer clus.Terminate(t)
|
||||
|
||||
cli := clus.RandClient()
|
||||
|
||||
ids := []clientv3.LeaseID{}
|
||||
for i := 0; i < 5; i++ {
|
||||
resp, err := cli.Grant(context.Background(), 10)
|
||||
if err != nil {
|
||||
t.Errorf("failed to create lease %v", err)
|
||||
}
|
||||
ids = append(ids, resp.ID)
|
||||
}
|
||||
|
||||
resp, err := cli.Leases(context.Background())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(resp.Leases) != 5 {
|
||||
t.Fatalf("len(resp.Leases) expected 5, got %d", len(resp.Leases))
|
||||
}
|
||||
for i := range resp.Leases {
|
||||
if ids[i] != resp.Leases[i].ID {
|
||||
t.Fatalf("#%d: lease ID expected %d, got %d", i, ids[i], resp.Leases[i].ID)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TestLeaseRenewLostQuorum ensures keepalives work after losing quorum
|
||||
// for a while.
|
||||
func TestLeaseRenewLostQuorum(t *testing.T) {
|
||||
|
@ -234,6 +234,43 @@ func TestV3LeaseExists(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// TestV3LeaseLeases creates leases and confirms list RPC fetches created ones.
|
||||
func TestV3LeaseLeases(t *testing.T) {
|
||||
defer testutil.AfterTest(t)
|
||||
clus := NewClusterV3(t, &ClusterConfig{Size: 1})
|
||||
defer clus.Terminate(t)
|
||||
|
||||
ctx0, cancel0 := context.WithCancel(context.Background())
|
||||
defer cancel0()
|
||||
|
||||
// create leases
|
||||
ids := []int64{}
|
||||
for i := 0; i < 5; i++ {
|
||||
lresp, err := toGRPC(clus.RandClient()).Lease.LeaseGrant(
|
||||
ctx0,
|
||||
&pb.LeaseGrantRequest{TTL: 30})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if lresp.Error != "" {
|
||||
t.Fatal(lresp.Error)
|
||||
}
|
||||
ids = append(ids, lresp.ID)
|
||||
}
|
||||
|
||||
lresp, err := toGRPC(clus.RandClient()).Lease.LeaseLeases(
|
||||
context.Background(),
|
||||
&pb.LeaseLeasesRequest{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
for i := range lresp.Leases {
|
||||
if lresp.Leases[i].ID != ids[i] {
|
||||
t.Fatalf("#%d: lease ID expected %d, got %d", i, ids[i], lresp.Leases[i].ID)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TestV3LeaseRenewStress keeps creating lease and renewing it immediately to ensure the renewal goes through.
|
||||
// it was oberserved that the immediate lease renewal after granting a lease from follower resulted lease not found.
|
||||
// related issue https://github.com/coreos/etcd/issues/6978
|
||||
|
Loading…
x
Reference in New Issue
Block a user