diff --git a/engine/vm_test.go b/engine/vm_test.go index 285da4d..52d883c 100644 --- a/engine/vm_test.go +++ b/engine/vm_test.go @@ -1,6 +1,7 @@ package engine import ( + "bytes" "context" "os" "testing" @@ -328,3 +329,19 @@ func TestVM_ResetEnv(t *testing.T) { assert.Equal(t, uint64(20), maxVariables) }) } + +func TestVM_DebugHook(t *testing.T) { + var vm VM + vm.Register0(NewAtom("foo"), func(_ *VM, k Cont, env *Env) *Promise { + return k(env) + }) + + buf := &bytes.Buffer{} + vm.InstallHook(DebugHookFn(buf)) + + var env Env + ok, err := Call(&vm, NewAtom("foo"), Success, &env).Force(context.Background()) + assert.NoError(t, err) + assert.True(t, ok) + assert.Equal(t, "enter\ncall(foo/0)\nexit\n", buf.String()) +}