github.com/bluenviron/mediacommon@v1.9.3/pkg/codecs/jpeg/start_of_frame1_test.go (about) 1 package jpeg 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 var casesStartOfFrame1 = []struct { 10 name string 11 enc []byte 12 dec StartOfFrame1 13 }{ 14 { 15 "base", 16 []byte{ 17 0xff, 0xc0, 0x0, 0x11, 0x8, 0x2, 0x58, 0x3, 18 0x20, 0x3, 0x0, 0x22, 0x0, 0x1, 0x11, 0x1, 19 0x2, 0x11, 0x1, 20 }, 21 StartOfFrame1{ 22 Type: 1, 23 Width: 800, 24 Height: 600, 25 QuantizationTableCount: 2, 26 }, 27 }, 28 } 29 30 func TestStartOfFrame1Unmarshal(t *testing.T) { 31 for _, ca := range casesStartOfFrame1 { 32 t.Run(ca.name, func(t *testing.T) { 33 var h StartOfFrame1 34 err := h.Unmarshal(ca.enc[4:]) 35 require.NoError(t, err) 36 h.QuantizationTableCount = 2 37 require.Equal(t, ca.dec, h) 38 }) 39 } 40 } 41 42 func TestStartOfFrame1Marshal(t *testing.T) { 43 for _, ca := range casesStartOfFrame1 { 44 t.Run(ca.name, func(t *testing.T) { 45 byts := ca.dec.Marshal(nil) 46 require.Equal(t, ca.enc, byts) 47 }) 48 } 49 } 50 51 func FuzzStartOfFrame1Unmarshal(f *testing.F) { 52 f.Fuzz(func(_ *testing.T, b []byte) { 53 var h StartOfFrame1 54 h.Unmarshal(b) //nolint:errcheck 55 }) 56 }