mirror of
https://github.com/netbirdio/easyjson.git
synced 2026-05-22 18:44:42 -07:00
42 lines
830 B
Go
42 lines
830 B
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)
|
|
}
|
|
}
|