blob: fbbb2c933b2a32a715d3a01428d20fee74bea622 [file] [log] [blame]
// 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 (
"bytes"
"io"
"testing"
)
var (
I interface{}
J int
B = new(bytes.Buffer)
W io.Writer = B
I2 interface{} = B
R io.ReadWriter = B
Big [2]*int
)
func BenchmarkConvT2E(b *testing.B) {
for i := 0; i < b.N; i++ {
I = 1
}
}
func BenchmarkConvT2EBig(b *testing.B) {
v := [2]*int{}
for i := 0; i < b.N; i++ {
I = v
}
}
func BenchmarkConvT2I(b *testing.B) {
for i := 0; i < b.N; i++ {
W = B
}
}
func BenchmarkConvI2E(b *testing.B) {
for i := 0; i < b.N; i++ {
I = W
}
}
func BenchmarkConvI2I(b *testing.B) {
for i := 0; i < b.N; i++ {
W = R
}
}
func BenchmarkAssertE2T(b *testing.B) {
I = 1
for i := 0; i < b.N; i++ {
J = I.(int)
}
}
func BenchmarkAssertE2TBig(b *testing.B) {
var v interface{} = [2]*int{}
for i := 0; i < b.N; i++ {
Big = v.([2]*int)
}
}
func BenchmarkAssertE2I(b *testing.B) {
for i := 0; i < b.N; i++ {
W = I2.(io.Writer)
}
}
func BenchmarkAssertI2T(b *testing.B) {
for i := 0; i < b.N; i++ {
B = W.(*bytes.Buffer)
}
}
func BenchmarkAssertI2I(b *testing.B) {
for i := 0; i < b.N; i++ {
W = R.(io.Writer)
}
}
func BenchmarkAssertI2E(b *testing.B) {
for i := 0; i < b.N; i++ {
I = R.(interface{})
}
}
func BenchmarkAssertE2E(b *testing.B) {
for i := 0; i < b.N; i++ {
I = I2.(interface{})
}
}