File: //proc/thread-self/root/opt/go/pkg/mod/github.com/mailru/
[email protected]/tests/intern_test.go
package tests
import (
"testing"
"github.com/mailru/easyjson"
)
func TestStringIntern(t *testing.T) {
data := []byte(`{"field": "string interning test"}`)
var i Intern
allocsPerRun := testing.AllocsPerRun(1000, func() {
i = Intern{}
err := easyjson.Unmarshal(data, &i)
if err != nil {
t.Error(err)
}
if i.Field != "string interning test" {
t.Fatalf("wrong value: %q", i.Field)
}
})
if allocsPerRun != 1 {
t.Fatalf("expected 1 allocs, got %f", allocsPerRun)
}
var n NoIntern
allocsPerRun = testing.AllocsPerRun(1000, func() {
n = NoIntern{}
err := easyjson.Unmarshal(data, &n)
if err != nil {
t.Error(err)
}
if n.Field != "string interning test" {
t.Fatalf("wrong value: %q", n.Field)
}
})
if allocsPerRun != 2 {
t.Fatalf("expected 2 allocs, got %f", allocsPerRun)
}
}