diff options
| author | Russ Cox <rsc@golang.org> | 2014-09-08 00:08:51 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2014-09-08 00:08:51 -0400 |
| commit | c007ce824d9a4fccb148f9204e04c23ed2984b71 (patch) | |
| tree | 7dcac257114ef5c446be5b7b68c27dea230b7c09 /src/pkg/runtime/string_test.go | |
| parent | 220a6de47eced55956eb8af8d643d4f5b67fd634 (diff) | |
| download | go-c007ce824d9a4fccb148f9204e04c23ed2984b71.tar.xz | |
build: move package sources from src/pkg to src
Preparation was in CL 134570043.
This CL contains only the effect of 'hg mv src/pkg/* src'.
For more about the move, see golang.org/s/go14nopkg.
Diffstat (limited to 'src/pkg/runtime/string_test.go')
| -rw-r--r-- | src/pkg/runtime/string_test.go | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/src/pkg/runtime/string_test.go b/src/pkg/runtime/string_test.go deleted file mode 100644 index e7ac51a5f0..0000000000 --- a/src/pkg/runtime/string_test.go +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright 2012 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 runtime_test - -import ( - "runtime" - "strings" - "testing" -) - -func BenchmarkCompareStringEqual(b *testing.B) { - bytes := []byte("Hello Gophers!") - s1, s2 := string(bytes), string(bytes) - for i := 0; i < b.N; i++ { - if s1 != s2 { - b.Fatal("s1 != s2") - } - } -} - -func BenchmarkCompareStringIdentical(b *testing.B) { - s1 := "Hello Gophers!" - s2 := s1 - for i := 0; i < b.N; i++ { - if s1 != s2 { - b.Fatal("s1 != s2") - } - } -} - -func BenchmarkCompareStringSameLength(b *testing.B) { - s1 := "Hello Gophers!" - s2 := "Hello, Gophers" - for i := 0; i < b.N; i++ { - if s1 == s2 { - b.Fatal("s1 == s2") - } - } -} - -func BenchmarkCompareStringDifferentLength(b *testing.B) { - s1 := "Hello Gophers!" - s2 := "Hello, Gophers!" - for i := 0; i < b.N; i++ { - if s1 == s2 { - b.Fatal("s1 == s2") - } - } -} - -func BenchmarkCompareStringBigUnaligned(b *testing.B) { - bytes := make([]byte, 0, 1<<20) - for len(bytes) < 1<<20 { - bytes = append(bytes, "Hello Gophers!"...) - } - s1, s2 := string(bytes), "hello"+string(bytes) - for i := 0; i < b.N; i++ { - if s1 != s2[len("hello"):] { - b.Fatal("s1 != s2") - } - } - b.SetBytes(int64(len(s1))) -} - -func BenchmarkCompareStringBig(b *testing.B) { - bytes := make([]byte, 0, 1<<20) - for len(bytes) < 1<<20 { - bytes = append(bytes, "Hello Gophers!"...) - } - s1, s2 := string(bytes), string(bytes) - for i := 0; i < b.N; i++ { - if s1 != s2 { - b.Fatal("s1 != s2") - } - } - b.SetBytes(int64(len(s1))) -} - -func BenchmarkRuneIterate(b *testing.B) { - bytes := make([]byte, 100) - for i := range bytes { - bytes[i] = byte('A') - } - s := string(bytes) - for i := 0; i < b.N; i++ { - for range s { - } - } -} - -func BenchmarkRuneIterate2(b *testing.B) { - bytes := make([]byte, 100) - for i := range bytes { - bytes[i] = byte('A') - } - s := string(bytes) - for i := 0; i < b.N; i++ { - for range s { - } - } -} - -func TestStringW(t *testing.T) { - strings := []string{ - "hello", - "a\u5566\u7788b", - } - - for _, s := range strings { - var b []uint16 - for _, c := range s { - b = append(b, uint16(c)) - if c != rune(uint16(c)) { - t.Errorf("bad test: stringW can't handle >16 bit runes") - } - } - b = append(b, 0) - r := runtime.GostringW(b) - if r != s { - t.Errorf("gostringW(%v) = %s, want %s", b, r, s) - } - } -} - -func TestLargeStringConcat(t *testing.T) { - output := executeTest(t, largeStringConcatSource, nil) - want := "panic: " + strings.Repeat("0", 1<<10) + strings.Repeat("1", 1<<10) + - strings.Repeat("2", 1<<10) + strings.Repeat("3", 1<<10) - if !strings.HasPrefix(output, want) { - t.Fatalf("output does not start with %q:\n%s", want, output) - } -} - -var largeStringConcatSource = ` -package main -import "strings" -func main() { - s0 := strings.Repeat("0", 1<<10) - s1 := strings.Repeat("1", 1<<10) - s2 := strings.Repeat("2", 1<<10) - s3 := strings.Repeat("3", 1<<10) - s := s0 + s1 + s2 + s3 - panic(s) -} -` |
