1
0
mirror of https://github.com/golang/go synced 2024-11-21 19:04:44 -07:00

test/bench/go1: fix gzip test

We can't depend on init() order, and certainly we don't want to
register all future benchmarks that use jsonbytes or jsondata to init()
in json_test.go, so we use a more general solution: make generation of
jsonbytes and jsondata their own function so that the compiler will take
care of the order.

R=golang-dev, dave, rsc
CC=golang-dev
https://golang.org/cl/6282046
This commit is contained in:
Shenghou Ma 2012-06-05 00:14:39 +08:00
parent 622ace8ffe
commit 6b4ae1d28e
2 changed files with 10 additions and 9 deletions

View File

@ -21,9 +21,7 @@ var (
gobdata *JSONResponse
)
func gobinit() {
// gobinit is called after json's init,
// because it uses jsondata.
func init() {
gobdata = gobResponse(&jsondata)
var buf bytes.Buffer

View File

@ -17,11 +17,11 @@ import (
)
var (
jsonbytes []byte
jsondata JSONResponse
jsonbytes = makeJsonBytes()
jsondata = makeJsonData()
)
func init() {
func makeJsonBytes() []byte {
var r io.Reader
r = strings.NewReader(jsonbz2_base64)
r = base64.NewDecoder(base64.StdEncoding, r)
@ -30,12 +30,15 @@ func init() {
if err != nil {
panic(err)
}
jsonbytes = b
return b
}
if err := json.Unmarshal(jsonbytes, &jsondata); err != nil {
func makeJsonData() JSONResponse {
var v JSONResponse
if err := json.Unmarshal(jsonbytes, &v); err != nil {
panic(err)
}
gobinit()
return v
}
type JSONResponse struct {