internal/stack: helper package for querying stack frames

Intended for #5. Also replaces a helper function in the `printer`
package.
This commit is contained in:
Michael McLoughlin
2019-01-04 00:45:01 -08:00
parent 52b6e2c03b
commit 301d0c137a
3 changed files with 109 additions and 16 deletions

View File

@@ -0,0 +1,34 @@
package stack_test
import (
"runtime"
"testing"
"github.com/mmcloughlin/avo/internal/stack"
)
const pkg = "github.com/mmcloughlin/avo/internal/stack_test"
func TestFramesFirst(t *testing.T) {
fs := stack.Frames(0, 1)
if len(fs) == 0 {
t.Fatalf("empty slice")
}
got := fs[0].Function
expect := pkg + ".TestFramesFirst"
if got != expect {
t.Fatalf("bad function name %s; expect %s", got, expect)
}
}
func TestMatchFirst(t *testing.T) {
first := stack.Match(0, func(_ runtime.Frame) bool { return true })
if first == nil {
t.Fatalf("nil match")
}
got := first.Function
expect := pkg + ".TestMatchFirst"
if got != expect {
t.Fatalf("bad function name %s; expect %s", got, expect)
}
}