forked from zenazn/goji
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
Showing
2 changed files
with
52 additions
and
44 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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") | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters