diff options
Diffstat (limited to 'libgo/go/json/scanner_test.go')
-rw-r--r-- | libgo/go/json/scanner_test.go | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/libgo/go/json/scanner_test.go b/libgo/go/json/scanner_test.go index 2dc8ff87fb4..0d4de3246dd 100644 --- a/libgo/go/json/scanner_test.go +++ b/libgo/go/json/scanner_test.go @@ -85,6 +85,7 @@ func TestIndent(t *testing.T) { // Tests of a large random structure. func TestCompactBig(t *testing.T) { + initBig() var buf bytes.Buffer if err := Compact(&buf, jsonBig); err != nil { t.Fatalf("Compact: %v", err) @@ -98,6 +99,7 @@ func TestCompactBig(t *testing.T) { } func TestIndentBig(t *testing.T) { + initBig() var buf bytes.Buffer if err := Indent(&buf, jsonBig, "", "\t"); err != nil { t.Fatalf("Indent1: %v", err) @@ -135,6 +137,7 @@ func TestIndentBig(t *testing.T) { } func TestNextValueBig(t *testing.T) { + initBig() var scan scanner item, rest, err := nextValue(jsonBig, &scan) if err != nil { @@ -160,6 +163,7 @@ func TestNextValueBig(t *testing.T) { } func BenchmarkSkipValue(b *testing.B) { + initBig() var scan scanner for i := 0; i < b.N; i++ { nextValue(jsonBig, &scan) @@ -191,12 +195,23 @@ func trim(b []byte) []byte { var jsonBig []byte -func init() { - b, err := Marshal(genValue(10000)) - if err != nil { - panic(err) +const ( + big = 10000 + small = 100 +) + +func initBig() { + n := big + if testing.Short() { + n = small + } + if len(jsonBig) != n { + b, err := Marshal(genValue(n)) + if err != nil { + panic(err) + } + jsonBig = b } - jsonBig = b } func genValue(n int) interface{} { |