Skip to content

Commit

Permalink
Merge pull request etcd-io#11572 from lzhfromustc/API_Fatal_4
Browse files Browse the repository at this point in the history
integration/clientv3: fix 4 API misusage in test functions
  • Loading branch information
jingyih authored Feb 14, 2020
2 parents bdf69df + f00394e commit 84ace97
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 13 deletions.
13 changes: 9 additions & 4 deletions clientv3/integration/lease_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ package integration

import (
"context"
"fmt"
"reflect"
"sort"
"sync"
Expand Down Expand Up @@ -392,18 +393,22 @@ func TestLeaseRevokeNewAfterClose(t *testing.T) {
t.Fatal(err)
}

donec := make(chan struct{})
errMsgCh := make(chan string, 1)
go func() {
_, err := cli.Revoke(context.TODO(), leaseID)
if !clientv3.IsConnCanceled(err) {
t.Fatalf("expected %v or server unavailable, got %v", context.Canceled, err)
errMsgCh <- fmt.Sprintf("expected %v or server unavailable, got %v", context.Canceled, err)
} else {
errMsgCh <- ""
}
close(donec)
}()
select {
case <-time.After(integration.RequestWaitTimeout):
t.Fatal("le.Revoke took too long")
case <-donec:
case errMsg := <-errMsgCh:
if errMsg != "" {
t.Fatalf(errMsg)
}
}
}

Expand Down
13 changes: 11 additions & 2 deletions clientv3/integration/leasing_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1575,12 +1575,16 @@ func TestLeasingTxnAtomicCache(t *testing.T) {
var wgPutters, wgGetters sync.WaitGroup
wgPutters.Add(numPutters)
wgGetters.Add(numGetters)
txnerrCh := make(chan error, 1)

f := func() {
defer wgPutters.Done()
for i := 0; i < 10; i++ {
if _, txnerr := lkv.Txn(context.TODO()).Then(puts...).Commit(); err != nil {
t.Fatal(txnerr)
if _, txnerr := lkv.Txn(context.TODO()).Then(puts...).Commit(); txnerr != nil {
select {
case txnerrCh <- txnerr:
default:
}
}
}
}
Expand Down Expand Up @@ -1619,6 +1623,11 @@ func TestLeasingTxnAtomicCache(t *testing.T) {
}

wgPutters.Wait()
select {
case txnerr := <-txnerrCh:
t.Fatal(txnerr)
default:
}
close(donec)
wgGetters.Wait()
}
Expand Down
13 changes: 7 additions & 6 deletions integration/v3_election_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,13 +140,11 @@ func TestElectionFailover(t *testing.T) {
}

// next leader
electedc := make(chan struct{})
electedErrC := make(chan error, 1)
go func() {
ee := concurrency.NewElection(ss[1], "test-election")
if eer := ee.Campaign(context.TODO(), "bar"); eer != nil {
t.Fatal(eer)
}
electedc <- struct{}{}
eer := ee.Campaign(context.TODO(), "bar")
electedErrC <- eer // If eer != nil, the test will fail by calling t.Fatal(eer)
}()

// invoke leader failover
Expand All @@ -166,7 +164,10 @@ func TestElectionFailover(t *testing.T) {
}

// leader must ack election (otherwise, Campaign may see closed conn)
<-electedc
eer := <-electedErrC
if eer != nil {
t.Fatal(eer)
}
}

// TestElectionSessionRelock ensures that campaigning twice on the same election
Expand Down
7 changes: 6 additions & 1 deletion integration/v3_grpc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -456,12 +456,14 @@ func TestV3TxnCmpHeaderRev(t *testing.T) {
for i := 0; i < 10; i++ {
// Concurrently put a key with a txn comparing on it.
revc := make(chan int64, 1)
errCh := make(chan error, 1)
go func() {
defer close(revc)
pr := &pb.PutRequest{Key: []byte("k"), Value: []byte("v")}
presp, err := kvc.Put(context.TODO(), pr)
errCh <- err
if err != nil {
t.Fatal(err)
return
}
revc <- presp.Header.Revision
}()
Expand All @@ -485,6 +487,9 @@ func TestV3TxnCmpHeaderRev(t *testing.T) {
}

prev := <-revc
if err := <-errCh; err != nil {
t.Fatal(err)
}
// put followed txn; should eval to false
if prev > tresp.Header.Revision && !tresp.Succeeded {
t.Errorf("#%d: got else but put rev %d followed txn rev (%+v)", i, prev, tresp)
Expand Down

0 comments on commit 84ace97

Please sign in to comment.