Files
vault/oracle/go/internal/format/limits_test.go
T
Andy DixonandClaude 69f4b90777 Freeze the Go implementation as a test-only oracle, with vectors
oracle/go is the Go code at 4c1507c, moved unchanged, plus test-only
generators that record what it computes. tests/vectors holds the
deterministic crypto/store vectors and synthetic fixtures they produce.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-08 09:55:17 +01:00

42 lines
1.1 KiB
Go

// SPDX-License-Identifier: GPL-3.0-or-later
package format
import (
"bufio"
"bytes"
"strings"
"testing"
)
func TestStanzaReaderRejectsOversizedStanza(t *testing.T) {
var input bytes.Buffer
input.WriteString("-> test ")
input.WriteString(strings.Repeat("a", MaxStanzaSize))
input.WriteString("\n\n")
sr := NewStanzaReader(bufio.NewReader(&input))
if _, err := sr.ReadStanza(); err == nil {
t.Fatal("ReadStanza accepted an oversized stanza")
} else if !strings.Contains(err.Error(), "stanza exceeds") {
t.Fatalf("ReadStanza error = %v, want stanza size limit error", err)
}
}
func TestParseRejectsOversizedHeader(t *testing.T) {
var input bytes.Buffer
input.WriteString(intro)
for input.Len() <= MaxHeaderSize {
input.WriteString("-> test ")
input.WriteString(strings.Repeat("a", MaxStanzaSize-1024))
input.WriteString("\n\n")
}
input.WriteString("--- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n")
if _, _, err := Parse(&input); err == nil {
t.Fatal("Parse accepted an oversized header")
} else if !strings.Contains(err.Error(), "header exceeds") {
t.Fatalf("Parse error = %v, want header size limit error", err)
}
}