github.com/bluenviron/mediacommon@v1.9.3/pkg/codecs/jpeg/start_of_scan_test.go (about) 1 package jpeg 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 var casesStartOfScan = []struct { 10 name string 11 enc []byte 12 dec StartOfScan 13 }{ 14 { 15 "base", 16 []byte{ 17 0xff, 0xda, 0x0, 0xc, 0x3, 0x0, 0x0, 0x1, 18 0x11, 0x2, 0x11, 0x0, 0x3f, 0x0, 19 }, 20 StartOfScan{}, 21 }, 22 } 23 24 func TestStartOfScanUnmarshal(t *testing.T) { 25 for _, ca := range casesStartOfScan { 26 t.Run(ca.name, func(t *testing.T) { 27 var h StartOfScan 28 err := h.Unmarshal(ca.enc[4:]) 29 require.NoError(t, err) 30 require.Equal(t, ca.dec, h) 31 }) 32 } 33 } 34 35 func TestStartOfScanMarshal(t *testing.T) { 36 for _, ca := range casesStartOfScan { 37 t.Run(ca.name, func(t *testing.T) { 38 byts := ca.dec.Marshal(nil) 39 require.Equal(t, ca.enc, byts) 40 }) 41 } 42 } 43 44 func FuzzStartOfScanUnmarshal(f *testing.F) { 45 f.Fuzz(func(_ *testing.T, b []byte) { 46 var h StartOfScan 47 h.Unmarshal(b) //nolint:errcheck 48 }) 49 }