From e2cdfe3757b09bb57578a01478afc8631883d0be Mon Sep 17 00:00:00 2001 From: "R.B. Boyer" Date: Tue, 16 Apr 2019 09:54:26 -0500 Subject: [PATCH 1/2] tests: actually have TestSessionTTLRenew sleep during execution Due to an unintended order of operations issue with integer division TestSessionTTLRenew was sleeping for 0s every time. Also add explicit failures for when the various session requests return nil unexpectedly. --- agent/session_endpoint_test.go | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/agent/session_endpoint_test.go b/agent/session_endpoint_test.go index 2b2c69183077..c68652e5b858 100644 --- a/agent/session_endpoint_test.go +++ b/agent/session_endpoint_test.go @@ -385,6 +385,9 @@ func TestSessionTTLRenew(t *testing.T) { if err != nil { t.Fatalf("err: %v", err) } + if obj == nil { + t.Fatalf("session '%s' expired", id) + } respObj, ok := obj.(structs.Sessions) if !ok { t.Fatalf("should work") @@ -397,7 +400,11 @@ func TestSessionTTLRenew(t *testing.T) { } // Sleep to consume some time before renew - time.Sleep(ttl * (structs.SessionTTLMultiplier / 3)) + sleepFor := ttl * structs.SessionTTLMultiplier / 3 + if sleepFor <= 0 { + t.Fatalf("timing tests need to sleep") + } + time.Sleep(sleepFor) req, _ = http.NewRequest("PUT", "/v1/session/renew/"+id, nil) resp = httptest.NewRecorder() @@ -405,6 +412,9 @@ func TestSessionTTLRenew(t *testing.T) { if err != nil { t.Fatalf("err: %v", err) } + if obj == nil { + t.Fatalf("session '%s' expired before renewal", id) + } respObj, ok = obj.(structs.Sessions) if !ok { t.Fatalf("should work") @@ -422,6 +432,9 @@ func TestSessionTTLRenew(t *testing.T) { if err != nil { t.Fatalf("err: %v", err) } + if obj == nil { + t.Fatalf("session '%s' expired before renewal", id) + } respObj, ok = obj.(structs.Sessions) if !ok { t.Fatalf("session '%s' should have renewed", id) @@ -439,12 +452,14 @@ func TestSessionTTLRenew(t *testing.T) { if err != nil { t.Fatalf("err: %v", err) } - respObj, ok = obj.(structs.Sessions) - if !ok { - t.Fatalf("session '%s' should have destroyed", id) - } - if len(respObj) != 0 { - t.Fatalf("session '%s' should have destroyed", id) + if obj != nil { + respObj, ok = obj.(structs.Sessions) + if !ok { + t.Fatalf("session '%s' should have destroyed", id) + } + if len(respObj) != 0 { + t.Fatalf("session '%s' should have destroyed", id) + } } } From a78a2a215f202ef61ad49726843bb58d46cf9a00 Mon Sep 17 00:00:00 2001 From: "R.B. Boyer" Date: Wed, 17 Apr 2019 15:46:23 -0500 Subject: [PATCH 2/2] remove useless checks --- agent/session_endpoint_test.go | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/agent/session_endpoint_test.go b/agent/session_endpoint_test.go index c68652e5b858..4e80d8ea30bd 100644 --- a/agent/session_endpoint_test.go +++ b/agent/session_endpoint_test.go @@ -385,9 +385,6 @@ func TestSessionTTLRenew(t *testing.T) { if err != nil { t.Fatalf("err: %v", err) } - if obj == nil { - t.Fatalf("session '%s' expired", id) - } respObj, ok := obj.(structs.Sessions) if !ok { t.Fatalf("should work") @@ -432,9 +429,6 @@ func TestSessionTTLRenew(t *testing.T) { if err != nil { t.Fatalf("err: %v", err) } - if obj == nil { - t.Fatalf("session '%s' expired before renewal", id) - } respObj, ok = obj.(structs.Sessions) if !ok { t.Fatalf("session '%s' should have renewed", id) @@ -452,14 +446,12 @@ func TestSessionTTLRenew(t *testing.T) { if err != nil { t.Fatalf("err: %v", err) } - if obj != nil { - respObj, ok = obj.(structs.Sessions) - if !ok { - t.Fatalf("session '%s' should have destroyed", id) - } - if len(respObj) != 0 { - t.Fatalf("session '%s' should have destroyed", id) - } + respObj, ok = obj.(structs.Sessions) + if !ok { + t.Fatalf("session '%s' should have destroyed", id) + } + if len(respObj) != 0 { + t.Fatalf("session '%s' should have destroyed", id) } }