Index: src/pkg/runtime/string_test.go |
=================================================================== |
--- a/src/pkg/runtime/string_test.go |
+++ b/src/pkg/runtime/string_test.go |
@@ -6,6 +6,7 @@ |
import ( |
"runtime" |
+ "strings" |
"testing" |
) |
@@ -122,3 +123,25 @@ |
} |
} |
} |
+ |
+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) |
+} |
+` |