Files
RustIJVM/tests/advanced3.rs
2019-05-29 15:38:00 +02:00

40 lines
1.1 KiB
Rust

extern crate rustijvm;
fn steps(machine: &mut rustijvm::Machine, num: usize) {
for _ in 0..num {
machine.step().unwrap();
}
}
#[test]
fn advanced3_wide1() {
use rustijvm::value::Value::Int;
let mut machine = rustijvm::Machine::new_from_file("files/advanced/test-wide1.ijvm").unwrap();
steps(&mut machine, 6);
assert_eq!(machine.cur_frame().get(1), Ok(&Int(0x1)));
steps(&mut machine, 2);
assert_eq!(machine.cur_frame().get(257), Ok(&Int(0x2)));
steps(&mut machine, 1);
assert_eq!(machine.get_tos(), Ok(0x1));
steps(&mut machine, 1);
assert_eq!(machine.get_tos(), Ok(0x2));
}
#[test]
fn advanced3_wide2() {
use rustijvm::value::Value::Int;
let mut machine = rustijvm::Machine::new_from_file("files/advanced/test-wide2.ijvm").unwrap();
steps(&mut machine, 6);
assert_eq!(machine.cur_frame().get(1), Ok(&Int(0x1)));
steps(&mut machine, 2);
assert_eq!(machine.cur_frame().get(32768), Ok(&Int(0x2)));
steps(&mut machine, 1);
assert_eq!(machine.get_tos(), Ok(0x1));
steps(&mut machine, 1);
assert_eq!(machine.get_tos(), Ok(0x2));
}