]> Cypherpunks repositories - keks.git/commitdiff
Too deep error test
authorSergey Matveev <stargrave@stargrave.org>
Tue, 11 Feb 2025 07:13:33 +0000 (10:13 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Tue, 11 Feb 2025 07:13:33 +0000 (10:13 +0300)
go/blob_test.go
go/int_test.go
go/list_test.go
go/map_test.go

index a97d5cb03c55c893fa0b93cc985f6b2d98b1b633d57bfdd1754e5db93ad91f0a..e18e680c31539a892070bf881c279186e1d1f985aaf1097598ac240d09bdfd8e 100644 (file)
@@ -302,3 +302,12 @@ func TestBlobWrongTerminatorTag(t *testing.T) {
                t.Fatal(err)
        }
 }
+
+func TestBlobTooDeep(t *testing.T) {
+       bin := []byte{byte(AtomBLOB)}
+       bin = append(bin, bytes.Repeat([]byte{0x01}, 8)...)
+       bin = append(bin, bytes.Repeat([]byte{byte(AtomList)}, 1000)...)
+       if _, err := NewDecoderFromBytes(bin, nil).Decode(); err != ErrBlobBadAtom {
+               t.Fatal(err)
+       }
+}
index de40f88cf608fcc1ef068be6340a355b13fc2dc3893d7bd579e3ce2755badfec..34e13372e8bd3d8b1577dd7b80a8824cb98bb8ec0348181a5060c64cf7ade579 100644 (file)
@@ -658,3 +658,12 @@ func TestIntNBigSymmetric(t *testing.T) {
                t.Fatal(err)
        }
 }
+
+func TestIntTooDeep(t *testing.T) {
+       if _, err := NewDecoderFromBytes(append(
+               []byte{byte(AtomPInt)},
+               bytes.Repeat([]byte{byte(AtomList)}, 1000)...,
+       ), nil).Decode(); err != ErrBadInt {
+               t.Fatal(err)
+       }
+}
index 1dd24647a9f15ef8a6b8d0a44a1488dfa5e3f5b45328b4f99613e8608ad5eeb3..3adcaea2f87b772806104ba477ee12dbbc296dca4a40fe93710cb898a523ffbc 100644 (file)
@@ -124,3 +124,11 @@ func TestListIntSymmetric(t *testing.T) {
                t.Fatal(err)
        }
 }
+
+func TestListTooDeep(t *testing.T) {
+       if _, err := NewDecoderFromBytes(
+               bytes.Repeat([]byte{byte(AtomList)}, 1000),
+               nil).Decode(); err != ErrTooDeep {
+               t.Fatal(err)
+       }
+}
index 9ae869396d72eea80d7142b5d90fa08152b3dc386f330b27b92c12f80c5bb7e1..1414ab78bc8e46ef8033fd9ffdcc1966d4c281b1648482a56fa26d00f6ad87ce 100644 (file)
@@ -187,3 +187,16 @@ func TestMapIntSymmetric(t *testing.T) {
                t.Fatal(err)
        }
 }
+
+func TestMapTooDeep(t *testing.T) {
+       k, err := EncodeBuf("k", nil)
+       if err != nil {
+               t.Fatal(err)
+       }
+       k = append([]byte{byte(AtomMap)}, k...)
+       if _, err := NewDecoderFromBytes(
+               bytes.Repeat(k, 1000), nil,
+       ).Decode(); err != ErrTooDeep {
+               t.Fatal(err)
+       }
+}