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) } }