You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.2 KiB
Plaintext
52 lines
1.2 KiB
Plaintext
env GOPRIVATE=test/main
|
|
|
|
# Tiny mode
|
|
garble -tiny build
|
|
! binsubstr main$exe 'main.go' 'fmt/print.go'
|
|
env GODEBUG='allocfreetrace=1,gcpacertrace=1,gctrace=1,inittrace=1,scavenge=1,scavtrace=1,scheddetail=1,schedtrace=10'
|
|
! exec ./main$exe
|
|
stderr '^\(0x[\d\w]{4,8},0x[\d\w]{4,8}\)' # interfaces/pointers print correctly
|
|
# TODO: Make -tiny remove all line information again.
|
|
# Right now, we reset each declaration's start line to 1.
|
|
# Better than nothing, but we could still make *all* line numbers 1.
|
|
# stderr '^caller: \? 0$' # position info is removed
|
|
stderr '^caller: \?\? ' # position info is removed
|
|
stderr '^recovered: ya like jazz?'
|
|
! stderr 'panic: oh noes' # panics are hidden
|
|
|
|
[short] stop # no need to verify this with -short
|
|
|
|
# Default mode
|
|
env GODEBUG=
|
|
garble build
|
|
! exec ./main$exe
|
|
stderr '^caller: [0-9a-zA-Z_]+\.go [1-9]'
|
|
stderr '^recovered: ya like jazz?'
|
|
stderr 'panic: oh noes'
|
|
|
|
-- go.mod --
|
|
module test/main
|
|
|
|
go 1.16
|
|
-- main.go --
|
|
package main
|
|
|
|
import "runtime"
|
|
|
|
func main() {
|
|
var v interface{} = "tada"
|
|
println(v)
|
|
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
println("recovered:", r.(string))
|
|
panic("oh noes")
|
|
}
|
|
}()
|
|
|
|
_, file, line, _ := runtime.Caller(0)
|
|
println("caller:", file, line)
|
|
|
|
panic("ya like jazz?")
|
|
}
|