فهرست منبع

fixed client race test code

Jonathan Turner 8 سال پیش
والد
کامیت
9ac72049ee
1فایلهای تغییر یافته به همراه22 افزوده شده و 16 حذف شده
  1. 22 16
      client/client_integration_test.go

+ 22 - 16
client/client_integration_test.go

@@ -9,6 +9,8 @@ import (
 	"os"
 	"testing"
 
+	"errors"
+	"fmt"
 	"github.com/stretchr/testify/assert"
 	"gopkg.in/jcmturner/gokrb5.v4/config"
 	"gopkg.in/jcmturner/gokrb5.v4/credentials"
@@ -363,7 +365,10 @@ func TestMultiThreadedClientUse(t *testing.T) {
 	for i := 0; i < 5; i++ {
 		go func() {
 			defer wg.Done()
-			login(t, &cl)
+			err := cl.Login()
+			if err != nil {
+				panic(err)
+			}
 		}()
 	}
 	wg.Wait()
@@ -372,21 +377,17 @@ func TestMultiThreadedClientUse(t *testing.T) {
 	wg2.Add(5)
 	for i := 0; i < 5; i++ {
 		go func() {
-			defer wg.Done()
-			spnegoGet(t, &cl)
+			defer wg2.Done()
+			err := spnegoGet(&cl)
+			if err != nil {
+				panic(err)
+			}
 		}()
 	}
 	wg2.Wait()
 }
 
-func login(t *testing.T, cl *Client) {
-	err := cl.Login()
-	if err != nil {
-		t.Fatalf("Error on AS_REQ: %v\n", err)
-	}
-}
-
-func spnegoGet(t *testing.T, cl *Client) {
+func spnegoGet(cl *Client) error {
 	url := os.Getenv("TEST_HTTP_URL")
 	if url == "" {
 		url = testdata.TEST_HTTP_URL
@@ -394,18 +395,23 @@ func spnegoGet(t *testing.T, cl *Client) {
 	r, _ := http.NewRequest("GET", url, nil)
 	httpResp, err := http.DefaultClient.Do(r)
 	if err != nil {
-		t.Fatalf("Request error: %v\n", err)
+		return fmt.Errorf("Request error: %v\n", err)
+	}
+	if httpResp.StatusCode != http.StatusUnauthorized {
+		return errors.New("did not get unauthorized code when no SPNEGO header set")
 	}
-	assert.Equal(t, http.StatusUnauthorized, httpResp.StatusCode, "Status code in response to client with no SPNEGO not as expected")
 	err = cl.SetSPNEGOHeader(r, "HTTP/host.test.gokrb5")
 	if err != nil {
-		t.Fatalf("Error setting client SPNEGO header: %v", err)
+		return fmt.Errorf("Error setting client SPNEGO header: %v", err)
 	}
 	httpResp, err = http.DefaultClient.Do(r)
 	if err != nil {
-		t.Fatalf("Request error: %v\n", err)
+		return fmt.Errorf("Request error: %v\n", err)
 	}
-	assert.Equal(t, http.StatusOK, httpResp.StatusCode, "Status code in response to client SPNEGO request not as expected")
+	if httpResp.StatusCode != http.StatusOK {
+		return errors.New("did not get OK code when SPNEGO header set")
+	}
+	return nil
 }
 
 func TestNewClientFromCCache(t *testing.T) {