func TestAcceptStream(t *testing.T) { t.Parallel() local, remote := newFakeConnPair() // don't need the remote output remote.Discard() // true for a client session s := NewSession(local, NewStream, true, []Extension{}) defer s.Close() f := frame.NewWStreamSyn() f.Set(300, 0, 0, false) // send the frame into the session trans := frame.NewBasicTransport(remote) trans.WriteFrame(f) done := make(chan int) go func() { defer func() { done <- 1 }() // wait for accept str, err := s.Accept() if err != nil { t.Errorf("Error accepting stream: %v", err) return } if str.Id() != frame.StreamId(300) { t.Errorf("Stream has wrong id. Expected %d, got %d", str.Id(), 300) } }() select { case <-time.After(time.Second): t.Fatalf("Timed out!") case <-done: } }
func (a *sessionAdaptor) OpenStream(priority StreamPriority, related StreamId, fin bool) (Stream, error) { str, err := a.ISession.OpenStream(frame.StreamPriority(priority), frame.StreamId(related), fin) return &streamAdaptor{str}, err }