blob: ed5226cbd41ceebce2b52b266f3d88378b7f70a2 [file] [log] [blame]
// Copyright 2023 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package quic
import (
"testing"
"testing/synctest"
)
func testSides(t *testing.T, name string, f func(*testing.T, connSide)) {
if name != "" {
name += "/"
}
t.Run(name+"server", func(t *testing.T) { f(t, serverSide) })
t.Run(name+"client", func(t *testing.T) { f(t, clientSide) })
}
func testSidesSynctest(t *testing.T, name string, f func(*testing.T, connSide)) {
t.Helper()
testSides(t, name, func(t *testing.T, side connSide) {
t.Helper()
synctest.Test(t, func(t *testing.T) {
f(t, side)
})
})
}
func testStreamTypes(t *testing.T, name string, f func(*testing.T, streamType)) {
if name != "" {
name += "/"
}
t.Run(name+"bidi", func(t *testing.T) { f(t, bidiStream) })
t.Run(name+"uni", func(t *testing.T) { f(t, uniStream) })
}
func testStreamTypesSynctest(t *testing.T, name string, f func(*testing.T, streamType)) {
t.Helper()
testStreamTypes(t, name, func(t *testing.T, stype streamType) {
t.Helper()
synctest.Test(t, func(t *testing.T) {
f(t, stype)
})
})
}
func testSidesAndStreamTypes(t *testing.T, name string, f func(*testing.T, connSide, streamType)) {
if name != "" {
name += "/"
}
t.Run(name+"server/bidi", func(t *testing.T) { f(t, serverSide, bidiStream) })
t.Run(name+"client/bidi", func(t *testing.T) { f(t, clientSide, bidiStream) })
t.Run(name+"server/uni", func(t *testing.T) { f(t, serverSide, uniStream) })
t.Run(name+"client/uni", func(t *testing.T) { f(t, clientSide, uniStream) })
}
func testSidesAndStreamTypesSynctest(t *testing.T, name string, f func(*testing.T, connSide, streamType)) {
t.Helper()
testSidesAndStreamTypes(t, name, func(t *testing.T, side connSide, stype streamType) {
t.Helper()
synctest.Test(t, func(t *testing.T) {
f(t, side, stype)
})
})
}
func synctestSubtest(t *testing.T, name string, f func(t *testing.T)) {
t.Run(name, func(t *testing.T) {
t.Helper()
synctest.Test(t, f)
})
}