8
8
9
9
"github.com/stretchr/testify/require"
10
10
11
+ "github.com/expr-lang/expr"
11
12
"github.com/expr-lang/expr/checker"
12
13
"github.com/expr-lang/expr/compiler"
13
14
"github.com/expr-lang/expr/conf"
@@ -34,6 +35,28 @@ func TestRun_ReuseVM(t *testing.T) {
34
35
require .NoError (t , err )
35
36
}
36
37
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
+
37
60
func TestRun_Cast (t * testing.T ) {
38
61
input := `1`
39
62
0 commit comments