Skip to content

Commit

Permalink
Make some sketchy tests Go 1.2 only
Browse files Browse the repository at this point in the history
In particular, these started failing when running tests under the race
detector in Go 1.4 [0], probably due to some kind of (GC?) hijinks
clearing out the sync.Pool.

[0]: these tests might have also failed in 1.3, but I didn't check
  • Loading branch information
zenazn committed Jan 4, 2015
1 parent b805cb8 commit 8c222e1
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 44 deletions.
52 changes: 52 additions & 0 deletions web/middleware12_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// +build !go1.3

package web

import "testing"

// These tests were pretty sketchtacular to start with, but they aren't even
// guaranteed to pass with Go 1.3's sync.Pool. Let's keep them here for now; if
// they start spuriously failing later we can delete them outright.

func TestCaching(t *testing.T) {
ch := make(chan string)
st := makeStack(ch)
cs1 := st.alloc()
cs2 := st.alloc()
if cs1 == cs2 {
t.Fatal("cs1 and cs2 are the same")
}
st.release(cs2)
cs3 := st.alloc()
if cs2 != cs3 {
t.Fatalf("Expected cs2 to equal cs3")
}
st.release(cs1)
st.release(cs3)
cs4 := st.alloc()
cs5 := st.alloc()
if cs4 != cs1 {
t.Fatal("Expected cs4 to equal cs1")
}
if cs5 != cs3 {
t.Fatal("Expected cs5 to equal cs3")
}
}

func TestInvalidation(t *testing.T) {
ch := make(chan string)
st := makeStack(ch)
cs1 := st.alloc()
cs2 := st.alloc()
st.release(cs1)
st.invalidate()
cs3 := st.alloc()
if cs3 == cs1 {
t.Fatal("Expected cs3 to be fresh, instead got cs1")
}
st.release(cs2)
cs4 := st.alloc()
if cs4 == cs2 {
t.Fatal("Expected cs4 to be fresh, instead got cs2")
}
}
44 changes: 0 additions & 44 deletions web/middleware_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,50 +163,6 @@ func TestAbandon(t *testing.T) {
assertOrder(t, ch, "one", "router", "end")
}

// This is a pretty sketchtacular test
func TestCaching(t *testing.T) {
ch := make(chan string)
st := makeStack(ch)
cs1 := st.alloc()
cs2 := st.alloc()
if cs1 == cs2 {
t.Fatal("cs1 and cs2 are the same")
}
st.release(cs2)
cs3 := st.alloc()
if cs2 != cs3 {
t.Fatalf("Expected cs2 to equal cs3")
}
st.release(cs1)
st.release(cs3)
cs4 := st.alloc()
cs5 := st.alloc()
if cs4 != cs1 {
t.Fatal("Expected cs4 to equal cs1")
}
if cs5 != cs3 {
t.Fatal("Expected cs5 to equal cs3")
}
}

func TestInvalidation(t *testing.T) {
ch := make(chan string)
st := makeStack(ch)
cs1 := st.alloc()
cs2 := st.alloc()
st.release(cs1)
st.invalidate()
cs3 := st.alloc()
if cs3 == cs1 {
t.Fatal("Expected cs3 to be fresh, instead got cs1")
}
st.release(cs2)
cs4 := st.alloc()
if cs4 == cs2 {
t.Fatal("Expected cs4 to be fresh, instead got cs2")
}
}

func TestContext(t *testing.T) {
router := func(c *C, w http.ResponseWriter, r *http.Request) {
if c.Env["reqID"].(int) != 2 {
Expand Down

0 comments on commit 8c222e1

Please sign in to comment.