Ai
1 Star 3 Fork 0

TimAndy/routine

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
api_error_test.go 19.81 KB
一键复制 编辑 原始数据 按行查看 历史
TimAndy 提交于 2023-10-16 09:35 +08:00 . Update benchmark result
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547
package routine
import (
"errors"
"runtime"
"runtime/debug"
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestNewRuntimeError_Nil(t *testing.T) {
err := NewRuntimeError(nil)
assertGoidGopc(t, err)
assert.Equal(t, "", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeError_EmptyString(t *testing.T) {
err := NewRuntimeError("")
assertGoidGopc(t, err)
assert.Equal(t, "", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeError_WhiteSpaceString(t *testing.T) {
err := NewRuntimeError("\t")
assertGoidGopc(t, err)
assert.Equal(t, "\t", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: \t", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeError_NormalString(t *testing.T) {
err := NewRuntimeError("this is error message")
assertGoidGopc(t, err)
assert.Equal(t, "this is error message", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeError_NilError(t *testing.T) {
var cause error
err := NewRuntimeError(cause)
assertGoidGopc(t, err)
assert.Equal(t, "", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeError_NormalError(t *testing.T) {
err := NewRuntimeError(errors.New("this is error message"))
assertGoidGopc(t, err)
assert.Equal(t, "this is error message", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeError_NilRuntimeError(t *testing.T) {
var cause RuntimeError
err := NewRuntimeError(cause)
assertGoidGopc(t, err)
assert.Equal(t, "", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeError_NormalRuntimeError(t *testing.T) {
cause := NewRuntimeError("this is inner message")
err := NewRuntimeError(cause)
assertGoidGopc(t, err)
assert.Equal(t, "", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Same(t, cause, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError", lines[0])
assert.Equal(t, " ---> RuntimeError: this is inner message", lines[1])
}
func TestNewRuntimeError_NilValue(t *testing.T) {
var cause *person
err := NewRuntimeError(cause)
assertGoidGopc(t, err)
assert.Equal(t, "<nil>", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: <nil>", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeError_NormalValue(t *testing.T) {
cause := person{Id: 1, Name: "Tim"}
err := NewRuntimeError(cause)
assertGoidGopc(t, err)
assert.Equal(t, "{1 Tim}", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: {1 Tim}", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessage_EmptyString(t *testing.T) {
err := NewRuntimeErrorWithMessage("")
assertGoidGopc(t, err)
assert.Equal(t, "", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessage_WhiteSpaceString(t *testing.T) {
err := NewRuntimeErrorWithMessage("\t")
assertGoidGopc(t, err)
assert.Equal(t, "\t", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: \t", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessage_NormalString(t *testing.T) {
err := NewRuntimeErrorWithMessage("this is error message")
assertGoidGopc(t, err)
assert.Equal(t, "this is error message", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_EmptyString_Nil(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("", nil)
assertGoidGopc(t, err)
assert.Equal(t, "", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_EmptyString_EmptyString(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("", "")
assertGoidGopc(t, err)
assert.Equal(t, "", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_EmptyString_WhiteSpaceString(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("", "\t")
assertGoidGopc(t, err)
assert.Equal(t, "\t", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: \t", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_EmptyString_NormalString(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("", "this is error message")
assertGoidGopc(t, err)
assert.Equal(t, "this is error message", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_EmptyString_NilError(t *testing.T) {
var cause error
err := NewRuntimeErrorWithMessageCause("", cause)
assertGoidGopc(t, err)
assert.Equal(t, "", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_EmptyString_NormalError(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("", errors.New("this is error message"))
assertGoidGopc(t, err)
assert.Equal(t, "this is error message", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_EmptyString_NilRuntimeError(t *testing.T) {
var cause RuntimeError
err := NewRuntimeErrorWithMessageCause("", cause)
assertGoidGopc(t, err)
assert.Equal(t, "", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_EmptyString_NormalRuntimeError(t *testing.T) {
cause := NewRuntimeError("this is inner message")
err := NewRuntimeErrorWithMessageCause("", cause)
assertGoidGopc(t, err)
assert.Equal(t, "", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Same(t, cause, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError", lines[0])
assert.Equal(t, " ---> RuntimeError: this is inner message", lines[1])
}
func TestNewRuntimeErrorWithMessageCause_EmptyString_NilValue(t *testing.T) {
var cause *person
err := NewRuntimeErrorWithMessageCause("", cause)
assertGoidGopc(t, err)
assert.Equal(t, "<nil>", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: <nil>", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_EmptyString_NormalValue(t *testing.T) {
cause := person{Id: 1, Name: "Tim"}
err := NewRuntimeErrorWithMessageCause("", cause)
assertGoidGopc(t, err)
assert.Equal(t, "{1 Tim}", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: {1 Tim}", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_WhiteSpaceString_Nil(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("\t", nil)
assertGoidGopc(t, err)
assert.Equal(t, "\t", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: \t", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_WhiteSpaceString_EmptyString(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("\t", "")
assertGoidGopc(t, err)
assert.Equal(t, "\t", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: \t", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_WhiteSpaceString_WhiteSpaceString(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("\t", "\t")
assertGoidGopc(t, err)
assert.Equal(t, "\t - \t", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: \t - \t", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_WhiteSpaceString_NormalString(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("\t", "this is error message")
assertGoidGopc(t, err)
assert.Equal(t, "\t - this is error message", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: \t - this is error message", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_WhiteSpaceString_NilError(t *testing.T) {
var cause error
err := NewRuntimeErrorWithMessageCause("\t", cause)
assertGoidGopc(t, err)
assert.Equal(t, "\t", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: \t", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_WhiteSpaceString_NormalError(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("\t", errors.New("this is error message"))
assertGoidGopc(t, err)
assert.Equal(t, "\t - this is error message", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: \t - this is error message", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_WhiteSpaceString_NilRuntimeError(t *testing.T) {
var cause RuntimeError
err := NewRuntimeErrorWithMessageCause("\t", cause)
assertGoidGopc(t, err)
assert.Equal(t, "\t", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: \t", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_WhiteSpaceString_NormalRuntimeError(t *testing.T) {
cause := NewRuntimeError("this is inner message")
err := NewRuntimeErrorWithMessageCause("\t", cause)
assertGoidGopc(t, err)
assert.Equal(t, "\t", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Same(t, cause, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: \t", lines[0])
assert.Equal(t, " ---> RuntimeError: this is inner message", lines[1])
}
func TestNewRuntimeErrorWithMessageCause_WhiteSpaceString_NilValue(t *testing.T) {
var cause *person
err := NewRuntimeErrorWithMessageCause("\t", cause)
assertGoidGopc(t, err)
assert.Equal(t, "\t - <nil>", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: \t - <nil>", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_WhiteSpaceString_NormalValue(t *testing.T) {
cause := person{Id: 1, Name: "Tim"}
err := NewRuntimeErrorWithMessageCause("\t", cause)
assertGoidGopc(t, err)
assert.Equal(t, "\t - {1 Tim}", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: \t - {1 Tim}", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_NormalString_Nil(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("this is error message", nil)
assertGoidGopc(t, err)
assert.Equal(t, "this is error message", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_NormalString_EmptyString(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("this is error message", "")
assertGoidGopc(t, err)
assert.Equal(t, "this is error message", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_NormalString_WhiteSpaceString(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("this is error message", "\t")
assertGoidGopc(t, err)
assert.Equal(t, "this is error message - \t", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message - \t", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_NormalString_NormalString(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("this is error message", "this is error message")
assertGoidGopc(t, err)
assert.Equal(t, "this is error message - this is error message", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message - this is error message", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_NormalString_NilError(t *testing.T) {
var cause error
err := NewRuntimeErrorWithMessageCause("this is error message", cause)
assertGoidGopc(t, err)
assert.Equal(t, "this is error message", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_NormalString_NormalError(t *testing.T) {
err := NewRuntimeErrorWithMessageCause("this is error message", errors.New("this is error message2"))
assertGoidGopc(t, err)
assert.Equal(t, "this is error message - this is error message2", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message - this is error message2", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_NormalString_NilRuntimeError(t *testing.T) {
var cause RuntimeError
err := NewRuntimeErrorWithMessageCause("this is error message", cause)
assertGoidGopc(t, err)
assert.Equal(t, "this is error message", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_NormalString_NormalRuntimeError(t *testing.T) {
cause := NewRuntimeError("this is inner message")
err := NewRuntimeErrorWithMessageCause("this is error message", cause)
assertGoidGopc(t, err)
assert.Equal(t, "this is error message", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Same(t, cause, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message", lines[0])
assert.Equal(t, " ---> RuntimeError: this is inner message", lines[1])
}
func TestNewRuntimeErrorWithMessageCause_NormalString_NilValue(t *testing.T) {
var cause *person
err := NewRuntimeErrorWithMessageCause("this is error message", cause)
assertGoidGopc(t, err)
assert.Equal(t, "this is error message - <nil>", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message - <nil>", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func TestNewRuntimeErrorWithMessageCause_NormalString_NormalValue(t *testing.T) {
cause := person{Id: 1, Name: "Tim"}
err := NewRuntimeErrorWithMessageCause("this is error message", cause)
assertGoidGopc(t, err)
assert.Equal(t, "this is error message - {1 Tim}", err.Message())
assert.Greater(t, len(err.StackTrace()), 1)
assert.Nil(t, err.Cause())
lines := strings.Split(err.Error(), newLine)
assert.Equal(t, "RuntimeError: this is error message - {1 Tim}", lines[0])
assert.Equal(t, " at ", lines[1][:6])
}
func assertGoidGopc(t *testing.T, err RuntimeError) {
assert.Equal(t, Goid(), err.Goid())
assert.NotNil(t, runtime.FuncForPC(err.Gopc()-1))
}
//===
// BenchmarkDebugStack-8 301474 3400 ns/op 1024 B/op 1 allocs/op
func BenchmarkDebugStack(b *testing.B) {
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
_ = debug.Stack()
}
}
// BenchmarkRuntimeError-8 342477 3344 ns/op 2840 B/op 15 allocs/op
func BenchmarkRuntimeError(b *testing.B) {
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
_ = NewRuntimeError(nil).Error()
}
}
// BenchmarkRuntimeErrorWithMessage-8 337117 3300 ns/op 2872 B/op 15 allocs/op
func BenchmarkRuntimeErrorWithMessage(b *testing.B) {
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
_ = NewRuntimeErrorWithMessage("").Error()
}
}
// BenchmarkRuntimeErrorWithMessageCause-8 350422 3362 ns/op 2872 B/op 15 allocs/op
func BenchmarkRuntimeErrorWithMessageCause(b *testing.B) {
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
_ = NewRuntimeErrorWithMessageCause("", nil).Error()
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/timandy/routine.git
git@gitee.com:timandy/routine.git
timandy
routine
routine
main

搜索帮助