forked from mailru/easyjson
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathintern_test.go
41 lines (36 loc) · 826 Bytes
/
intern_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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)
}
}