protobuf-go/internal/encoding/json/bench_test.go
Damien Neil e89e6244e0 all: change module to google.golang.org/protobuf
Temporarily remove go.mod, since we can't generate an accurate one until
the corresponding v1 change is submitted.

Change-Id: I1e1ad97f2b455e33f61ffaeb8676289795e47e72
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/177000
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
2019-05-14 17:28:29 +00:00

69 lines
1.3 KiB
Go

// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package json_test
import (
"testing"
"google.golang.org/protobuf/internal/encoding/json"
)
func BenchmarkFloat(b *testing.B) {
input := []byte(`1.797693134862315708145274237317043567981e+308`)
for i := 0; i < b.N; i++ {
dec := json.NewDecoder(input)
val, err := dec.Read()
if err != nil {
b.Fatal(err)
}
_, err = val.Float(64)
if err != nil {
b.Fatal(err)
}
}
}
func BenchmarkInt(b *testing.B) {
input := []byte(`922337203.6854775807e+10`)
for i := 0; i < b.N; i++ {
dec := json.NewDecoder(input)
val, err := dec.Read()
if err != nil {
b.Fatal(err)
}
_, err = val.Int(64)
if err != nil {
b.Fatal(err)
}
}
}
func BenchmarkString(b *testing.B) {
input := []byte(`"abcdefghijklmnopqrstuvwxyz0123456789\\n\\t"`)
for i := 0; i < b.N; i++ {
dec := json.NewDecoder(input)
val, err := dec.Read()
if err != nil {
b.Fatal(err)
}
_ = val.String()
}
}
func BenchmarkBool(b *testing.B) {
input := []byte(`true`)
for i := 0; i < b.N; i++ {
dec := json.NewDecoder(input)
val, err := dec.Read()
if err != nil {
b.Fatal(err)
}
_, err = val.Bool()
if err != nil {
b.Fatal(err)
}
}
}