a go dns packet parser
1package magna 2 3import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7) 8 9func TestBufferOverflowError(t *testing.T) { 10 tests := []struct { 11 name string 12 length int 13 offset int 14 expected string 15 }{ 16 {"PositiveOffset", 10, 15, "buffer overflow: attempted to read past buffer length 10 at offset 15"}, 17 {"ZeroLengthBuffer", 0, 5, "buffer overflow: attempted to read past buffer length 0 at offset 5"}, 18 {"NegativeOffset", 10, -1, "buffer overflow: attempted to read past buffer length 10 at offset -1"}, 19 {"EqualOffset", 10, 10, "buffer overflow: attempted to read past buffer length 10 at offset 10"}, 20 } 21 22 for _, tt := range tests { 23 t.Run(tt.name, func(t *testing.T) { 24 err := &BufferOverflowError{Length: tt.length, Offset: tt.offset} 25 assert.Equal(t, tt.expected, err.Error()) 26 }) 27 } 28} 29 30func TestInvalidLabelError(t *testing.T) { 31 tests := []struct { 32 name string 33 length int 34 expected string 35 }{ 36 {"LengthTooLarge", 64, "invalid domain label: length 64 exceeds maximum 63"}, 37 {"LengthZero", 0, "invalid domain label: zero length label encountered"}, 38 {"ValidLength", 30, "invalid domain label: unexpected length 30"}, 39 } 40 41 for _, tt := range tests { 42 t.Run(tt.name, func(t *testing.T) { 43 err := &InvalidLabelError{Length: tt.length} 44 assert.Equal(t, tt.expected, err.Error()) 45 }) 46 } 47} 48 49func TestDomainCompressionError(t *testing.T) { 50 t.Run("Standard", func(t *testing.T) { 51 err := &DomainCompressionError{} 52 expected := "invalid domain compression: pointer loop detected" 53 assert.Equal(t, expected, err.Error(), "Error() output mismatch") 54 }) 55}