test: validate native TLS on Linux

This commit is contained in:
2026-09-22 01:14:21 +08:00
parent e6c82a01fe
commit 9c9c8ab59a
9 changed files with 1385 additions and 32 deletions

View File

@@ -903,36 +903,6 @@ func TestAppRunWithNativeTLS(t *testing.T) {
}
}
func TestNativeTLSSlowHandshakeTimesOut(t *testing.T) {
application := omni.NewWithRouter(netrouter.New())
application.GET("/health", func(ctx *omni.Context) error { return ctx.OK("ok") })
server := native.New(application)
server.ReadHeaderTimeout = 30 * time.Millisecond
listener, err := net.Listen("tcp", "127.0.0.1:0")
if err != nil {
t.Fatal(err)
}
certificate := testCertificate(t)
done := make(chan error, 1)
go func() {
done <- server.ServeTLS(context.Background(), listener, &tls.Config{Certificates: []tls.Certificate{certificate}})
}()
waitForServer(t, listener.Addr().String())
defer stopServer(t, server, listener, done)
conn, err := net.Dial("tcp", listener.Addr().String())
if err != nil {
t.Fatal(err)
}
defer conn.Close()
if err := conn.SetReadDeadline(time.Now().Add(time.Second)); err != nil {
t.Fatal(err)
}
if _, err := conn.Read(make([]byte, 1)); err == nil {
t.Fatal("slow TLS handshake was not closed")
}
}
func testCertificate(t *testing.T) tls.Certificate {
t.Helper()
key, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)