mirror of https://github.com/golang/go.git
runtime: fix noopt builder
CL 352057 added track argument stack slot liveness, and updated TestTracebackArgs for argument liveness. But when optimization is disabled, all arguments are considered lived. The abiSel does not consider this case and return wrong expected result. To fix this, checking if we are running in a noopt builder and return the correct expected result. Also, skipping TestTracebackArgs in quick mode, since when quick mode run the test without optimization disable. Updates #45728 Change-Id: I3737a1b1a5fa0c711fbb3218205f2f6e34f36260 Reviewed-on: https://go-review.googlesource.com/c/go/+/359196 Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com> Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Cherry Mui <cherryyz@google.com> TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
a3bb28e5ff
commit
5c98bcb7d4
|
|
@ -7,15 +7,23 @@ package runtime_test
|
|||
import (
|
||||
"bytes"
|
||||
"internal/goexperiment"
|
||||
"internal/testenv"
|
||||
"runtime"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
var testTracebackArgsBuf [1000]byte
|
||||
|
||||
func TestTracebackArgs(t *testing.T) {
|
||||
abiSel := func(x, y string) string { // select expected output based on ABI
|
||||
if goexperiment.RegabiArgs {
|
||||
if *flagQuick {
|
||||
t.Skip("-quick")
|
||||
}
|
||||
optimized := !strings.HasSuffix(testenv.Builder(), "-noopt")
|
||||
abiSel := func(x, y string) string {
|
||||
// select expected output based on ABI
|
||||
// In noopt build we always spill arguments so the output is the same as stack ABI.
|
||||
if optimized && goexperiment.RegabiArgs {
|
||||
return x
|
||||
}
|
||||
return y
|
||||
|
|
|
|||
Loading…
Reference in New Issue