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}