server: add tls read/publish tests

This commit is contained in:
aler9
2021-05-02 21:30:09 +02:00
committed by Alessandro Ros
parent ab7ede2c00
commit 6a9f18f199
2 changed files with 40 additions and 7 deletions

View File

@@ -2,6 +2,7 @@ package gortsplib
import ( import (
"bufio" "bufio"
"crypto/tls"
"net" "net"
"strconv" "strconv"
"sync/atomic" "sync/atomic"
@@ -989,6 +990,7 @@ func TestServerPublishErrorTimeout(t *testing.T) {
for _, proto := range []string{ for _, proto := range []string{
"udp", "udp",
"tcp", "tcp",
"tls",
} { } {
t.Run(proto, func(t *testing.T) { t.Run(proto, func(t *testing.T) {
errDone := make(chan struct{}) errDone := make(chan struct{})
@@ -1022,18 +1024,31 @@ func TestServerPublishErrorTimeout(t *testing.T) {
ReadTimeout: 1 * time.Second, ReadTimeout: 1 * time.Second,
} }
if proto == "udp" { switch proto {
case "udp":
s.UDPRTPAddress = "127.0.0.1:8000" s.UDPRTPAddress = "127.0.0.1:8000"
s.UDPRTCPAddress = "127.0.0.1:8001" s.UDPRTCPAddress = "127.0.0.1:8001"
case "tls":
cert, err := tls.X509KeyPair(serverCert, serverKey)
require.NoError(t, err)
s.TLSConfig = &tls.Config{Certificates: []tls.Certificate{cert}}
} }
err := s.Start("127.0.0.1:8554") err := s.Start("127.0.0.1:8554")
require.NoError(t, err) require.NoError(t, err)
defer s.Close() defer s.Close()
conn, err := net.Dial("tcp", "localhost:8554") nconn, err := net.Dial("tcp", "localhost:8554")
require.NoError(t, err) require.NoError(t, err)
defer conn.Close() defer nconn.Close()
conn := func() net.Conn {
if proto == "tls" {
return tls.Client(nconn, &tls.Config{InsecureSkipVerify: true})
}
return nconn
}()
bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn)) bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn))
track, err := NewTrackH264(96, []byte("123456"), []byte("123456")) track, err := NewTrackH264(96, []byte("123456"), []byte("123456"))

View File

@@ -2,6 +2,7 @@ package gortsplib
import ( import (
"bufio" "bufio"
"crypto/tls"
"net" "net"
"testing" "testing"
"time" "time"
@@ -267,6 +268,7 @@ func TestServerRead(t *testing.T) {
for _, proto := range []string{ for _, proto := range []string{
"udp", "udp",
"tcp", "tcp",
"tls",
} { } {
t.Run(proto, func(t *testing.T) { t.Run(proto, func(t *testing.T) {
connOpened := make(chan struct{}) connOpened := make(chan struct{})
@@ -309,16 +311,32 @@ func TestServerRead(t *testing.T) {
close(framesReceived) close(framesReceived)
}, },
}, },
UDPRTPAddress: "127.0.0.1:8000", }
UDPRTCPAddress: "127.0.0.1:8001",
switch proto {
case "udp":
s.UDPRTPAddress = "127.0.0.1:8000"
s.UDPRTCPAddress = "127.0.0.1:8001"
case "tls":
cert, err := tls.X509KeyPair(serverCert, serverKey)
require.NoError(t, err)
s.TLSConfig = &tls.Config{Certificates: []tls.Certificate{cert}}
} }
err := s.Start("127.0.0.1:8554") err := s.Start("127.0.0.1:8554")
require.NoError(t, err) require.NoError(t, err)
defer s.Close() defer s.Close()
conn, err := net.Dial("tcp", "localhost:8554") nconn, err := net.Dial("tcp", "localhost:8554")
require.NoError(t, err) require.NoError(t, err)
conn := func() net.Conn {
if proto == "tls" {
return tls.Client(nconn, &tls.Config{InsecureSkipVerify: true})
}
return nconn
}()
bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn)) bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn))
<-connOpened <-connOpened
@@ -451,7 +469,7 @@ func TestServerRead(t *testing.T) {
<-sessionClosed <-sessionClosed
conn.Close() nconn.Close()
<-connClosed <-connClosed
}) })
} }