// Copyright 2014 The Mellium Contributors. // Use of this source code is governed by the BSD 2-clause // license that can be found in the LICENSE file. package jid import ( "testing" ) func BenchmarkSplit(b *testing.B) { for i := 0; i < b.N; i++ { SplitString("user@example.com/resource") } } func BenchmarkParseString(b *testing.B) { for i := 0; i < b.N; i++ { _, _ = Parse("user@example.com/resource") } } func BenchmarkParseStringIPv4(b *testing.B) { for i := 0; i < b.N; i++ { _, _ = Parse("user@127.0.0.1/resource") } } func BenchmarkParseStringIPv6(b *testing.B) { for i := 0; i < b.N; i++ { _, _ = Parse("user@[::1]/resource") } } func BenchmarkParseUnsafeString(b *testing.B) { for i := 0; i < b.N; i++ { _, _ = ParseUnsafe("user@example.com/resource") } } func BenchmarkParseUnsafeStringIPv4(b *testing.B) { for i := 0; i < b.N; i++ { _, _ = ParseUnsafe("user@127.0.0.1/resource") } } func BenchmarkParseUnsafeStringIPv6(b *testing.B) { for i := 0; i < b.N; i++ { _, _ = ParseUnsafe("user@[::1]/resource") } } func BenchmarkNewFull(b *testing.B) { for i := 0; i < b.N; i++ { _, _ = New("user", "example.com", "resource") } } func BenchmarkNewBare(b *testing.B) { for i := 0; i < b.N; i++ { _, _ = New("user", "example.com", "") } } func BenchmarkNewDomain(b *testing.B) { for i := 0; i < b.N; i++ { _, _ = New("", "example.com", "") } } func BenchmarkWithLocal(b *testing.B) { j := MustParse("local@example.com") b.ResetTimer() for i := 0; i < b.N; i++ { _, _ = j.WithResource("local") } } func BenchmarkWithDomain(b *testing.B) { j := MustParse("local@example.com") b.ResetTimer() for i := 0; i < b.N; i++ { _, _ = j.WithDomain("example.org") } } func BenchmarkWithResource(b *testing.B) { j := MustParse("example.com/res") b.ResetTimer() for i := 0; i < b.N; i++ { _, _ = j.WithResource("res") } } func BenchmarkCopy(b *testing.B) { j := JID{4, 11, []byte("userexample.comresource")} for i := 0; i < b.N; i++ { _ = j.Copy() } } func BenchmarkBare(b *testing.B) { j := JID{4, 11, []byte("userexample.comresource")} for i := 0; i < b.N; i++ { _ = j.Bare() } } func BenchmarkString(b *testing.B) { j := JID{4, 11, []byte("userexample.comresource")} for i := 0; i < b.N; i++ { _ = j.String() } } func BenchmarkEscapeTransform(b *testing.B) { src := []byte(escape) dst := make([]byte, len(src)+18) b.ResetTimer() for i := 0; i < b.N; i++ { Escape.Transform(dst, src, true) } } func BenchmarkUnescapeTransform(b *testing.B) { src := []byte(allescaped) dst := make([]byte, len(src)/3) b.ResetTimer() for i := 0; i < b.N; i++ { Unescape.Transform(dst, src, true) } } func BenchmarkEscapeBytes(b *testing.B) { src := []byte(escape) b.ResetTimer() for i := 0; i < b.N; i++ { _ = Escape.Bytes(src) } } func BenchmarkUnescapeBytes(b *testing.B) { src := []byte(allescaped) b.ResetTimer() for i := 0; i < b.N; i++ { _ = Unescape.Bytes(src) } }