forked from quic-go/quic-go
* http3: migrate the server tests away from Ginkgo * http3: add a test for server settings
49 lines
1000 B
Go
49 lines
1000 B
Go
package http3
|
|
|
|
import (
|
|
"net"
|
|
"os"
|
|
"strconv"
|
|
"testing"
|
|
"time"
|
|
|
|
. "github.com/onsi/ginkgo/v2"
|
|
. "github.com/onsi/gomega"
|
|
"github.com/stretchr/testify/require"
|
|
"go.uber.org/mock/gomock"
|
|
)
|
|
|
|
func TestHttp3(t *testing.T) {
|
|
RegisterFailHandler(Fail)
|
|
RunSpecs(t, "HTTP/3 Suite")
|
|
}
|
|
|
|
func newUDPConnLocalhost(t testing.TB) *net.UDPConn {
|
|
t.Helper()
|
|
conn, err := net.ListenUDP("udp", &net.UDPAddr{IP: net.IPv4(127, 0, 0, 1), Port: 0})
|
|
require.NoError(t, err)
|
|
t.Cleanup(func() { conn.Close() })
|
|
return conn
|
|
}
|
|
|
|
var mockCtrl *gomock.Controller
|
|
|
|
var _ = BeforeEach(func() {
|
|
mockCtrl = gomock.NewController(GinkgoT())
|
|
})
|
|
|
|
var _ = AfterEach(func() {
|
|
mockCtrl.Finish()
|
|
})
|
|
|
|
func scaleDuration(t time.Duration) time.Duration {
|
|
scaleFactor := 1
|
|
if f, err := strconv.Atoi(os.Getenv("TIMESCALE_FACTOR")); err == nil { // parsing "" errors, so this works fine if the env is not set
|
|
scaleFactor = f
|
|
}
|
|
if scaleFactor == 0 {
|
|
panic("TIMESCALE_FACTOR is 0")
|
|
}
|
|
return time.Duration(scaleFactor) * t
|
|
}
|