main: set WASMTIME_BACKTRACE_DETAILS when running in wasmtime.

I find myself consistently running tests, seeing them panic, and then
immediately running them again with this environment variable set.  It's
easier to just have tinygo do this for me.
Этот коммит содержится в:
Damian Gryski 2023-03-31 09:08:37 -07:00 коммит произвёл Damian Gryski
родитель d50c54fce0
коммит 50d681359d

Просмотреть файл

@ -792,6 +792,7 @@ func buildAndRun(pkgName string, config *compileopts.Config, stdout io.Writer, c
} }
} }
var args, env []string var args, env []string
var extraCmdEnv []string
if needsEnvInVars { if needsEnvInVars {
runtimeGlobals := make(map[string]string) runtimeGlobals := make(map[string]string)
if len(cmdArgs) != 0 { if len(cmdArgs) != 0 {
@ -822,6 +823,11 @@ func buildAndRun(pkgName string, config *compileopts.Config, stdout io.Writer, c
args = append(args, "--") args = append(args, "--")
args = append(args, cmdArgs...) args = append(args, cmdArgs...)
} }
// Set this for nicer backtraces during tests, but don't override the user.
if _, ok := os.LookupEnv("WASMTIME_BACKTRACE_DETAILS"); !ok {
extraCmdEnv = append(extraCmdEnv, "WASMTIME_BACKTRACE_DETAILS=1")
}
} else { } else {
// Pass environment variables and command line parameters as usual. // Pass environment variables and command line parameters as usual.
// This also works on qemu-aarch64 etc. // This also works on qemu-aarch64 etc.
@ -873,7 +879,8 @@ func buildAndRun(pkgName string, config *compileopts.Config, stdout io.Writer, c
} else { } else {
cmd = exec.Command(name, args...) cmd = exec.Command(name, args...)
} }
cmd.Env = env cmd.Env = append(cmd.Env, env...)
cmd.Env = append(cmd.Env, extraCmdEnv...)
// Configure stdout/stderr. The stdout may go to a buffer, not a real // Configure stdout/stderr. The stdout may go to a buffer, not a real
// stdout. // stdout.