From: Cuong Manh Le Date: Thu, 28 Oct 2021 03:40:54 +0000 (+0700) Subject: runtime: fix noopt builder X-Git-Tag: go1.18beta1~708 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5c98bcb7d43e1dcf60d3799afc30f4d56e5e3cc4;p=gostls13.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 Run-TryBot: Cuong Manh Le Reviewed-by: Cherry Mui TryBot-Result: Go Bot --- diff --git a/src/runtime/traceback_test.go b/src/runtime/traceback_test.go index de9580ae53..0333b85c56 100644 --- a/src/runtime/traceback_test.go +++ b/src/runtime/traceback_test.go @@ -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