Skip to content

Commit aff0544

Browse files
committed
add a test
1 parent 2ddb1ee commit aff0544

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

zenlang/tests/vm_unique.rs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff 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+
}

0 commit comments

Comments
 (0)