1
0

tracing url parsing

This commit is contained in:
Arpad Ryszka 2026-06-24 11:16:26 +02:00
parent fbb8bcd2c8
commit c79518125b

View File

@ -57,13 +57,17 @@ func printURLTree(t *testing.T, a Node) {
notation.Lprintw(t, a)
}
func urlParser() func(string) (Node, error) {
func urlParser(trace bool) func(string) (Node, error) {
b, err := os.ReadFile("doc/example/url.treerack")
if err != nil {
panic(err)
}
p := new(Syntax)
if trace {
p.MaxTraceLength = 180
}
if err = p.ReadSyntax(bytes.NewBuffer(b)); err != nil {
panic(err)
}
@ -1524,12 +1528,13 @@ func TestURL(t *testing.T) {
}
var d time.Duration
p := urlParser()
p := urlParser(test.bench <= 0)
for i := 0; i < n && !t.Failed(); i++ {
start := time.Now()
a, err := p(test.input)
d += time.Since(start)
if err != nil {
Trace(t.Output(), err)
t.Fatal(err)
}
@ -1581,7 +1586,7 @@ func TestURLErrors(t *testing.T) {
input: "http://foo.bar/foo%xbar",
}} {
t.Run(test.title, func(t *testing.T) {
p := urlParser()
p := urlParser(false)
if a, err := p(test.input); err == nil {
printURLTree(t, a)
t.Fatal("failed to fail", test.input)