streaming

Media streaming and broadcast systems in Go
Log | Files | Refs | README | LICENSE

commit 63e18e7130b326684f3b78af8676cd9bd0a5f313
parent cb47dc245992b2d5014e52d228e4ed9994aa52a8
Author: Oliver Lowe <o@olowe.co>
Date:   Sat, 22 Jun 2024 17:39:10 +1000

mpegts: test unmarshalling bad data

Not super thorough, but better than nothing. Easy enough to add new
test cases.

Diffstat:
Mmpegts/codec_test.go | 18++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/mpegts/codec_test.go b/mpegts/codec_test.go @@ -10,8 +10,7 @@ import ( ) func TestDecode(t *testing.T) { - // f, err := os.Open("testdata/193039199_mp4_h264_aac_hq_7.ts") - f, err := os.Open("testdata/bbb.ts") + f, err := os.Open("testdata/193039199_mp4_h264_aac_hq_7.ts") if err != nil { t.Fatal(err) } @@ -72,6 +71,21 @@ func TestDecode(t *testing.T) { } } +func TestBadData(t *testing.T) { + m := map[string][]byte{ + "garbage": []byte("0123456789"), + "only sync bytes": bytes.Repeat([]byte{Sync}, PacketSize), + } + for name, in := range m { + t.Run(name, func(t *testing.T) { + var p Packet + if err := Unmarshal(in, &p); err == nil { + t.Errorf("Unmarshal(%s): nil error", string(in)) + } + }) + } +} + func TestScanner(t *testing.T) { name := "testdata/193039199_mp4_h264_aac_hq_7.ts" data, err := os.ReadFile(name)