}()
}
-func exportReceive(exp *Exporter, t *testing.T) {
+func exportReceive(exp *Exporter, t *testing.T, expDone chan bool) {
ch := make(chan int)
err := exp.Export("exportedRecv", ch, Recv)
+ expDone <- true
if err != nil {
t.Fatal("exportReceive:", err)
}
if err != nil {
t.Fatal("new importer:", err)
}
+ expDone := make(chan bool)
+ done := make(chan bool)
+ go func() {
+ exportReceive(exp, t, expDone)
+ done <- true
+ }()
+ <-expDone
importSend(imp, count, t)
- exportReceive(exp, t)
+ <-done
}
func TestClosingExportSendImportReceive(t *testing.T) {
if err != nil {
t.Fatal("new importer:", err)
}
+ expDone := make(chan bool)
+ done := make(chan bool)
+ go func() {
+ exportReceive(exp, t, expDone)
+ done <- true
+ }()
+ <-expDone
importSend(imp, closeCount, t)
- exportReceive(exp, t)
+ <-done
}
func TestErrorForIllegalChannel(t *testing.T) {
t.Fatal("new importer:", err)
}
done := make(chan bool)
- go exportSend(exp, closeCount, t)
+ go func() {
+ exportSend(exp, closeCount, t)
+ done <- true
+ }()
+ <-done
go importReceive(imp, t, done)
exp.Drain(0)
<-done
t.Fatal("new importer:", err)
}
done := make(chan bool)
- go importReceive(imp, t, done)
exportSend(exp, closeCount, t)
+ go importReceive(imp, t, done)
exp.Sync(0)
<-done
}