aboutsummaryrefslogtreecommitdiff
path: root/eval_test.go
diff options
context:
space:
mode:
authoralandonovan <adonovan@google.com>2018-07-02 12:30:24 -0400
committerGitHub <noreply@github.com>2018-07-02 12:30:24 -0400
commitcc7dbc2bbe95ffaf3958a80556cd7e7d06d9a395 (patch)
treecd7c83fc789ef8de9b4d755ca63d61ad94144ff4 /eval_test.go
parenta21eb0f4b7c744457dc92d7ec27ea72924b45fbd (diff)
downloadstarlark-go-cc7dbc2bbe95ffaf3958a80556cd7e7d06d9a395.tar.gz
Builtin: push a Frame on the Thread's stack even when calling Builtins (#112)
* Builtin: push a Frame on the Thread's stack even when calling Builtins This makes the stack trace more accurate. Breaking API change: (*Frame).Function is superseded by (*Frame).Callable.
Diffstat (limited to 'eval_test.go')
-rw-r--r--eval_test.go15
1 files changed, 8 insertions, 7 deletions
diff --git a/eval_test.go b/eval_test.go
index 500c77d..8edd8c0 100644
--- a/eval_test.go
+++ b/eval_test.go
@@ -322,7 +322,7 @@ f()
print := func(thread *skylark.Thread, msg string) {
caller := thread.Caller()
fmt.Fprintf(buf, "%s: %s: %s\n",
- caller.Position(), caller.Function().Name(), msg)
+ caller.Position(), caller.Callable().Name(), msg)
}
thread := &skylark.Thread{Print: print}
if _, err := skylark.ExecFile(thread, "foo.go", src, nil); err != nil {
@@ -420,17 +420,18 @@ def i(): return h()
i()
`
thread := new(skylark.Thread)
- _, err := skylark.ExecFile(thread, "crash.go", src, nil)
+ _, err := skylark.ExecFile(thread, "crash.sky", src, nil)
switch err := err.(type) {
case *skylark.EvalError:
got := err.Backtrace()
// Compiled code currently has no column information.
const want = `Traceback (most recent call last):
- crash.go:6: in <toplevel>
- crash.go:5: in i
- crash.go:4: in h
- crash.go:3: in g
- crash.go:2: in f
+ crash.sky:6: in <toplevel>
+ crash.sky:5: in i
+ crash.sky:4: in h
+ <builtin>:1: in min
+ crash.sky:3: in g
+ crash.sky:2: in f
Error: floored division by zero`
if got != want {
t.Errorf("error was %s, want %s", got, want)