golanggohlsrtmpwebrtcmedia-serverobs-studiortcprtmp-proxyrtmp-serverrtprtsprtsp-proxyrtsp-relayrtsp-serversrtstreamingwebrtc-proxy
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
769 B
39 lines
769 B
package hls |
|
|
|
import ( |
|
"io" |
|
"testing" |
|
|
|
"github.com/stretchr/testify/require" |
|
) |
|
|
|
func TestMultiAccessBuffer(t *testing.T) { |
|
m := newMultiAccessBuffer() |
|
|
|
m.Write([]byte{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08}) |
|
|
|
r := m.NewReader() |
|
|
|
buf := make([]byte, 4) |
|
n, err := r.Read(buf) |
|
require.NoError(t, err) |
|
require.Equal(t, []byte{0x01, 0x02, 0x03, 0x04}, buf[:n]) |
|
|
|
buf = make([]byte, 10) |
|
n, err = r.Read(buf) |
|
require.NoError(t, err) |
|
require.Equal(t, []byte{0x05, 0x06, 0x07, 0x08}, buf[:n]) |
|
|
|
m.Write([]byte{0x09, 0x0a, 0x0b, 0x0c}) |
|
|
|
m.Close() |
|
|
|
buf = make([]byte, 10) |
|
n, err = r.Read(buf) |
|
require.NoError(t, err) |
|
require.Equal(t, []byte{0x09, 0x0a, 0x0b, 0x0c}, buf[:n]) |
|
|
|
buf = make([]byte, 10) |
|
_, err = r.Read(buf) |
|
require.Equal(t, io.EOF, err) |
|
}
|
|
|