github.com/expr-lang/expr@v1.16.9/vm/debug_test.go (about) 1 //go:build expr_debug 2 3 package vm_test 4 5 import ( 6 "testing" 7 8 "github.com/expr-lang/expr/internal/testify/require" 9 10 "github.com/expr-lang/expr/compiler" 11 "github.com/expr-lang/expr/parser" 12 "github.com/expr-lang/expr/vm" 13 ) 14 15 func TestDebugger(t *testing.T) { 16 input := `[1, 2]` 17 18 node, err := parser.Parse(input) 19 require.NoError(t, err) 20 21 program, err := compiler.Compile(node, nil) 22 require.NoError(t, err) 23 24 debug := vm.Debug() 25 go func() { 26 debug.Step() 27 debug.Step() 28 debug.Step() 29 debug.Step() 30 }() 31 go func() { 32 for range debug.Position() { 33 } 34 }() 35 36 _, err = debug.Run(program, nil) 37 require.NoError(t, err) 38 require.Len(t, debug.Stack, 0) 39 require.Nil(t, debug.Scopes) 40 }