mirror of
https://github.com/golang/go
synced 2024-10-04 20:11:22 -06:00
97 lines
1.5 KiB
Go
97 lines
1.5 KiB
Go
|
// 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{})
|
||
|
}
|
||
|
}
|