88
99 "github.com/stretchr/testify/require"
1010
11+ "github.com/expr-lang/expr"
1112 "github.com/expr-lang/expr/checker"
1213 "github.com/expr-lang/expr/compiler"
1314 "github.com/expr-lang/expr/conf"
@@ -34,6 +35,28 @@ func TestRun_ReuseVM(t *testing.T) {
3435 require .NoError (t , err )
3536}
3637
38+ func TestRun_ReuseVM_for_different_variables (t * testing.T ) {
39+ v := vm.VM {}
40+
41+ program , err := expr .Compile (`let a = 1; a + 1` )
42+ require .NoError (t , err )
43+ out , err := v .Run (program , nil )
44+ require .NoError (t , err )
45+ require .Equal (t , 2 , out )
46+
47+ program , err = expr .Compile (`let a = 2; a + 1` )
48+ require .NoError (t , err )
49+ out , err = v .Run (program , nil )
50+ require .NoError (t , err )
51+ require .Equal (t , 3 , out )
52+
53+ program , err = expr .Compile (`let a = 2; let b = 2; a + b` )
54+ require .NoError (t , err )
55+ out , err = v .Run (program , nil )
56+ require .NoError (t , err )
57+ require .Equal (t , 4 , out )
58+ }
59+
3760func TestRun_Cast (t * testing.T ) {
3861 input := `1`
3962
0 commit comments