mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #11572 from lzhfromustc/API_Fatal_4
integration/clientv3: fix 4 API misusage in test functions
This commit is contained in:
commit
84ace97ad7
@ -16,6 +16,7 @@ package integration
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"sort"
|
||||
"sync"
|
||||
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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:
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1619,6 +1623,11 @@ func TestLeasingTxnAtomicCache(t *testing.T) {
|
||||
}
|
||||
|
||||
wgPutters.Wait()
|
||||
select {
|
||||
case txnerr := <-txnerrCh:
|
||||
t.Fatal(txnerr)
|
||||
default:
|
||||
}
|
||||
close(donec)
|
||||
wgGetters.Wait()
|
||||
}
|
||||
|
@ -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
|
||||
@ -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
|
||||
|
@ -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
|
||||
}()
|
||||
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user