URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgo/] [go/] [runtime/] [append_test.go] - Rev 747
Compare with Previous | Blame | View Log
// Copyright 2011 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_testimport "testing"const N = 20func BenchmarkAppend(b *testing.B) {b.StopTimer()x := make([]int, 0, N)b.StartTimer()for i := 0; i < b.N; i++ {x = x[0:0]for j := 0; j < N; j++ {x = append(x, j)}}}func BenchmarkAppendSpecialCase(b *testing.B) {b.StopTimer()x := make([]int, 0, N)b.StartTimer()for i := 0; i < b.N; i++ {x = x[0:0]for j := 0; j < N; j++ {if len(x) < cap(x) {x = x[:len(x)+1]x[len(x)-1] = j} else {x = append(x, j)}}}}var x []intfunc f() int {x[:1][0] = 3return 2}func TestSideEffectOrder(t *testing.T) {x = make([]int, 0, 10)x = append(x, 1, f())if x[0] != 1 || x[1] != 2 {t.Error("append failed: ", x[0], x[1])}}
