File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed
Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -148,3 +148,35 @@ fn main {
148148 assert_eq ! ( vm. error, "" ) ;
149149 assert ! ( matches!( vm. ret, Value :: Number ( 2.0 ) ) ) ;
150150}
151+
152+ #[ test]
153+ fn vm_test_unique_5 ( ) {
154+ let mut tokenizer = Tokenizer :: new (
155+ r#"
156+ fn main {
157+ return ((15 + 3) * (8 >> 2) - (4 * (7 + 1) / 2)) - ((6 << 1) & (25 - (3 * 4)));
158+ }"#
159+ . into ( ) ,
160+ ) ;
161+ let mut parser = Parser :: new ( & mut tokenizer) ;
162+ let mut compiler = Compiler :: new ( & mut parser) ;
163+ if let Err ( e) = compiler. compile ( ) {
164+ assert_eq ! ( e, "" ) ;
165+ }
166+ let mut vm = VM :: new ( ) ;
167+ let module = compiler. get_module ( ) ;
168+ println ! ( "{:?}" , module) ;
169+ let _ = vm. load_module ( module) ;
170+ if let Err ( e) = vm. set_entry_function ( "main" ) {
171+ assert_eq ! ( e, "" ) ;
172+ }
173+
174+ loop {
175+ if !vm. step ( ) {
176+ break ;
177+ }
178+ }
179+
180+ assert_eq ! ( vm. error, "" ) ;
181+ assert ! ( matches!( vm. ret, Value :: Number ( 8.0 ) ) ) ;
182+ }
You can’t perform that action at this time.
0 commit comments