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>
diff --git a/src/runtime/traceback_test.go b/src/runtime/traceback_test.go
index de9580a..0333b85 100644
--- a/src/runtime/traceback_test.go
+++ b/src/runtime/traceback_test.go
@@ -7,15 +7,23 @@
 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