Browse Source

fix(discovery_test.go) protect the garbageHandler by a lock

Xiang Li 11 years ago
parent
commit
2817baf3f8
1 changed files with 9 additions and 0 deletions
  1. 9 0
      tests/functional/discovery_test.go

+ 9 - 0
tests/functional/discovery_test.go

@@ -7,6 +7,7 @@ import (
 	"net/http/httptest"
 	"net/http/httptest"
 	"net/url"
 	"net/url"
 	"strings"
 	"strings"
+	"sync"
 	"testing"
 	"testing"
 	"time"
 	"time"
 
 
@@ -20,6 +21,7 @@ import (
 type garbageHandler struct {
 type garbageHandler struct {
 	t       *testing.T
 	t       *testing.T
 	success bool
 	success bool
+	sync.Mutex
 }
 }
 
 
 func (g *garbageHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 func (g *garbageHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
@@ -27,6 +29,9 @@ func (g *garbageHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 	if r.URL.String() != "/v2/keys/_etcd/registry/1/node1" {
 	if r.URL.String() != "/v2/keys/_etcd/registry/1/node1" {
 		g.t.Fatalf("Unexpected web request")
 		g.t.Fatalf("Unexpected web request")
 	}
 	}
+	g.Lock()
+	defer g.Unlock()
+
 	g.success = true
 	g.success = true
 }
 }
 
 
@@ -51,6 +56,8 @@ func TestDiscoveryDownNoBackupPeers(t *testing.T) {
 		t.Fatal(err.Error())
 		t.Fatal(err.Error())
 	}
 	}
 
 
+	g.Lock()
+	defer g.Unlock()
 	if !g.success {
 	if !g.success {
 		t.Fatal("Discovery server never called")
 		t.Fatal("Discovery server never called")
 	}
 	}
@@ -82,6 +89,8 @@ func TestDiscoveryDownWithBackupPeers(t *testing.T) {
 			t.Fatal(err.Error())
 			t.Fatal(err.Error())
 		}
 		}
 
 
+		g.Lock()
+		defer g.Unlock()
 		if !g.success {
 		if !g.success {
 			t.Fatal("Discovery server never called")
 			t.Fatal("Discovery server never called")
 		}
 		}