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(); machine.set_output(rustijvm::stubs::output_stub()); 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(); machine.set_output(rustijvm::stubs::output_stub()); 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)); }