Skip to content

Commit

Permalink
internal/
Browse files Browse the repository at this point in the history
Signed-off-by: Gaurav Gahlot <gauravgahlot0107@gmail.com>
  • Loading branch information
gauravgahlot committed Nov 5, 2020
1 parent bc1d87b commit 8ea0611
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 37 deletions.
68 changes: 50 additions & 18 deletions internal/transport/keepalive_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ import (
"google.golang.org/grpc/keepalive"
)

const defaultTestTimeout = 10 * time.Second

// TestMaxConnectionIdle tests that a server will send GoAway to an idle
// client. An idle client is one who doesn't make any RPC calls for a duration
// of MaxConnectionIdle time.
Expand All @@ -50,7 +52,9 @@ func (s) TestMaxConnectionIdle(t *testing.T) {
cancel()
}()

stream, err := client.NewStream(context.Background(), &CallHdr{})
ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
stream, err := client.NewStream(ctx, &CallHdr{})
if err != nil {
t.Fatalf("client.NewStream() failed: %v", err)
}
Expand Down Expand Up @@ -87,7 +91,9 @@ func (s) TestMaxConnectionIdleBusyClient(t *testing.T) {
cancel()
}()

_, err := client.NewStream(context.Background(), &CallHdr{})
ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
_, err := client.NewStream(ctx, &CallHdr{})
if err != nil {
t.Fatalf("client.NewStream() failed: %v", err)
}
Expand Down Expand Up @@ -121,7 +127,9 @@ func (s) TestMaxConnectionAge(t *testing.T) {
cancel()
}()

_, err := client.NewStream(context.Background(), &CallHdr{})
ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
_, err := client.NewStream(ctx, &CallHdr{})
if err != nil {
t.Fatalf("client.NewStream() failed: %v", err)
}
Expand Down Expand Up @@ -228,8 +236,10 @@ func (s) TestKeepaliveServerWithResponsiveClient(t *testing.T) {
// Give keepalive logic some time by sleeping.
time.Sleep(4 * time.Second)

ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
// Make sure the client transport is healthy.
if _, err := client.NewStream(context.Background(), &CallHdr{}); err != nil {
if _, err := client.NewStream(ctx, &CallHdr{}); err != nil {
t.Fatalf("client.NewStream() failed: %v", err)
}
}
Expand Down Expand Up @@ -258,8 +268,10 @@ func (s) TestKeepaliveClientClosesUnresponsiveServer(t *testing.T) {
// Sleep for keepalive to close the connection.
time.Sleep(4 * time.Second)

ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
// Make sure the client transport is not healthy.
if _, err := client.NewStream(context.Background(), &CallHdr{}); err == nil {
if _, err := client.NewStream(ctx, &CallHdr{}); err == nil {
t.Fatal("client.NewStream() should have failed, but succeeded")
}
}
Expand Down Expand Up @@ -287,8 +299,10 @@ func (s) TestKeepaliveClientOpenWithUnresponsiveServer(t *testing.T) {
// Give keepalive some time.
time.Sleep(4 * time.Second)

ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
// Make sure the client transport is healthy.
if _, err := client.NewStream(context.Background(), &CallHdr{}); err != nil {
if _, err := client.NewStream(ctx, &CallHdr{}); err != nil {
t.Fatalf("client.NewStream() failed: %v", err)
}
}
Expand All @@ -311,16 +325,18 @@ func (s) TestKeepaliveClientClosesWithActiveStreams(t *testing.T) {
}
defer conn.Close()

ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
// Create a stream, but send no data on it.
if _, err := client.NewStream(context.Background(), &CallHdr{}); err != nil {
if _, err := client.NewStream(ctx, &CallHdr{}); err != nil {
t.Fatalf("client.NewStream() failed: %v", err)
}

// Give keepalive some time.
time.Sleep(4 * time.Second)

// Make sure the client transport is not healthy.
if _, err := client.NewStream(context.Background(), &CallHdr{}); err == nil {
if _, err := client.NewStream(ctx, &CallHdr{}); err == nil {
t.Fatal("client.NewStream() should have failed, but succeeded")
}
}
Expand All @@ -344,8 +360,10 @@ func (s) TestKeepaliveClientStaysHealthyWithResponsiveServer(t *testing.T) {
// Give keepalive some time.
time.Sleep(4 * time.Second)

ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
// Make sure the client transport is healthy.
if _, err := client.NewStream(context.Background(), &CallHdr{}); err != nil {
if _, err := client.NewStream(ctx, &CallHdr{}); err != nil {
t.Fatalf("client.NewStream() failed: %v", err)
}
}
Expand Down Expand Up @@ -391,8 +409,10 @@ func (s) TestKeepaliveClientFrequency(t *testing.T) {
t.Fatalf("client transport still healthy; expected GoAway from the server.")
}

ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
// Make sure the client transport is not healthy.
if _, err := client.NewStream(context.Background(), &CallHdr{}); err == nil {
if _, err := client.NewStream(ctx, &CallHdr{}); err == nil {
t.Fatal("client.NewStream() should have failed, but succeeded")
}
}
Expand Down Expand Up @@ -434,8 +454,10 @@ func (s) TestKeepaliveServerEnforcementWithAbusiveClientNoRPC(t *testing.T) {
t.Fatalf("client transport still healthy; expected GoAway from the server.")
}

ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
// Make sure the client transport is not healthy.
if _, err := client.NewStream(context.Background(), &CallHdr{}); err == nil {
if _, err := client.NewStream(ctx, &CallHdr{}); err == nil {
t.Fatal("client.NewStream() should have failed, but succeeded")
}
}
Expand Down Expand Up @@ -463,7 +485,9 @@ func (s) TestKeepaliveServerEnforcementWithAbusiveClientWithRPC(t *testing.T) {
cancel()
}()

if _, err := client.NewStream(context.Background(), &CallHdr{}); err != nil {
ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
if _, err := client.NewStream(ctx, &CallHdr{}); err != nil {
t.Fatalf("client.NewStream() failed: %v", err)
}

Expand All @@ -481,7 +505,7 @@ func (s) TestKeepaliveServerEnforcementWithAbusiveClientWithRPC(t *testing.T) {
}

// Make sure the client transport is not healthy.
if _, err := client.NewStream(context.Background(), &CallHdr{}); err == nil {
if _, err := client.NewStream(ctx, &CallHdr{}); err == nil {
t.Fatal("client.NewStream() should have failed, but succeeded")
}
}
Expand Down Expand Up @@ -514,8 +538,10 @@ func (s) TestKeepaliveServerEnforcementWithObeyingClientNoRPC(t *testing.T) {
// Give keepalive enough time.
time.Sleep(3 * time.Second)

ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
// Make sure the client transport is healthy.
if _, err := client.NewStream(context.Background(), &CallHdr{}); err != nil {
if _, err := client.NewStream(ctx, &CallHdr{}); err != nil {
t.Fatalf("client.NewStream() failed: %v", err)
}
}
Expand Down Expand Up @@ -543,15 +569,17 @@ func (s) TestKeepaliveServerEnforcementWithObeyingClientWithRPC(t *testing.T) {
cancel()
}()

if _, err := client.NewStream(context.Background(), &CallHdr{}); err != nil {
ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
if _, err := client.NewStream(ctx, &CallHdr{}); err != nil {
t.Fatalf("client.NewStream() failed: %v", err)
}

// Give keepalive enough time.
time.Sleep(3 * time.Second)

// Make sure the client transport is healthy.
if _, err := client.NewStream(context.Background(), &CallHdr{}); err != nil {
if _, err := client.NewStream(ctx, &CallHdr{}); err != nil {
t.Fatalf("client.NewStream() failed: %v", err)
}
}
Expand Down Expand Up @@ -584,8 +612,10 @@ func (s) TestKeepaliveServerEnforcementWithDormantKeepaliveOnClient(t *testing.T
// No active streams on the client. Give keepalive enough time.
time.Sleep(5 * time.Second)

ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
// Make sure the client transport is healthy.
if _, err := client.NewStream(context.Background(), &CallHdr{}); err != nil {
if _, err := client.NewStream(ctx, &CallHdr{}); err != nil {
t.Fatalf("client.NewStream() failed: %v", err)
}
}
Expand Down Expand Up @@ -633,7 +663,9 @@ func (s) TestTCPUserTimeout(t *testing.T) {
cancel()
}()

stream, err := client.NewStream(context.Background(), &CallHdr{})
ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
stream, err := client.NewStream(ctx, &CallHdr{})
if err != nil {
t.Fatalf("client.NewStream() failed: %v", err)
}
Expand Down
Loading

0 comments on commit 8ea0611

Please sign in to comment.