1
0
Fork 0
mirror of https://github.com/fluffle/goirc synced 2025-05-15 20:13:19 +00:00

The TestSTRaces test doesn't pass because of goroutine ordering behaviour change in go1.5, so remove it.

The test would not pass because GetChannel and GetNick are called before NewChannel and NewNick
This commit is contained in:
John Soros 2015-12-06 22:57:01 +01:00
parent 21c4c24f6e
commit cef3ffb7fe

View file

@ -1,7 +1,6 @@
package state
import (
"sync"
"testing"
)
@ -563,56 +562,3 @@ func TestSTWipe(t *testing.T) {
t.Errorf("Nick chan lists wrong length after wipe.")
}
}
func TestSTRaces(t *testing.T) {
st := NewTracker("mynick")
wg := sync.WaitGroup{}
for i := 'a'; i < 'g'; i++ {
wg.Add(2)
go func(s string) {
st.NewNick("nick-" + s)
c := st.NewChannel("#chan-" + s)
st.Associate(c.Name, "mynick")
wg.Done()
}(string(i))
go func(s string) {
n := st.GetNick("nick-" + s)
c := st.GetChannel("#chan-" + s)
st.Associate(c.Name, n.Nick)
wg.Done()
}(string(i))
}
wg.Wait()
wg = sync.WaitGroup{}
race := func(ns, cs string) {
wg.Add(5)
go func() {
st.Associate("#chan-"+cs, "nick-"+ns)
wg.Done()
}()
go func() {
st.GetNick("nick-"+ns)
wg.Done()
}()
go func() {
st.GetChannel("#chan-"+cs)
wg.Done()
}()
go func() {
st.Dissociate("#chan-"+cs, "nick-"+ns)
wg.Done()
}()
go func() {
st.ReNick("nick-"+ns, "nick2-"+ns)
wg.Done()
}()
}
for n := 'a'; n < 'g'; n++ {
for c := 'a'; c < 'g'; c++ {
race(string(n), string(c))
}
}
wg.Wait()
}