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  }