Revert "Add tests to machine"

This reverts commit 72b2a105f0.
This commit is contained in:
Quentin Legot 2023-02-01 14:30:36 +01:00
parent 72b2a105f0
commit 5ad42a7073

View File

@ -139,9 +139,10 @@ impl Machine {
/// ### Parameters /// ### Parameters
/// ///
/// - **machine** which contains a table of instructions /// - **machine** which contains a table of instructions
pub fn run(&mut self){ pub fn run(machine : Machine){
loop { let mut m = machine;
self.one_instruction(); loop{
Machine::one_instruction(&mut m);
} }
} }
@ -150,8 +151,8 @@ impl Machine {
/// ### Parameters /// ### Parameters
/// ///
/// - **machine** which contains a table of instructions and a pc to the actual instruction /// - **machine** which contains a table of instructions and a pc to the actual instruction
pub fn one_instruction(&mut self) { pub fn one_instruction(machine :&mut Machine) {
let mut machine = self;
let unsigned_reg1 : u64; let unsigned_reg1 : u64;
let unsigned_reg2 : u64; let unsigned_reg2 : u64;
let long_result : i128; let long_result : i128;
@ -465,21 +466,11 @@ impl Machine {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use crate::simulator::{machine::Machine, decode}; use crate::simulator::machine::Machine;
fn init() -> Machine {
let mut m = Machine::_init_machine();
m.main_memory[0] = 255;
m.main_memory[1] = 43;
m.main_memory[2] = 7;
m.main_memory[3] = 157;
m
}
#[test] #[test]
fn test_read_memory() { fn test_read_memory() {
let mut m = init(); let mut m = Machine::_init_machine();
m.main_memory[4] = 43; m.main_memory[4] = 43;
m.main_memory[5] = 150; m.main_memory[5] = 150;
assert_eq!((43 << 8) + 150, Machine::read_memory(&mut m, 2, 4)); assert_eq!((43 << 8) + 150, Machine::read_memory(&mut m, 2, 4));
@ -487,50 +478,9 @@ impl Machine {
#[test] #[test]
fn test_write_memory() { fn test_write_memory() {
let mut m = init(); let mut m = Machine::_init_machine();
Machine::write_memory(&mut m, 2, 6, (43 << 8) + 150); Machine::write_memory(&mut m, 2, 6, (43 << 8) + 150);
assert_eq!(43, m.main_memory[6]); assert_eq!(43, m.main_memory[6]);
assert_eq!(150, m.main_memory[7]); assert_eq!(150, m.main_memory[7]);
} }
#[test]
fn test_op_add() {
let mut m = init();
m.int_reg[6] = 5; // t1
m.instructions[0] = 0b0000000_00110_00000_000_00101_0110011;
// add t0, zero, t1
m.one_instruction();
assert_eq!(m.int_reg[5], 5);
}
#[test]
fn test_op_sub() {
let mut m = init();
m.int_reg[6] = 5; // t1
m.instructions[0] = 0b0100000_00110_00000_000_00101_0110011;
// sub t0, zero, t1
m.one_instruction();
assert_eq!(m.int_reg[5], -5);
}
#[test]
fn test_op_addi() {
let mut m = init();
m.int_reg[6] = 5; // t1
m.instructions[0] = 0b11111111111_00110_000_00101_0010011;
// add t0, t1, 2047
m.one_instruction();
assert_eq!(m.int_reg[5], 2052);
}
/// Equivalent of subi
#[test]
fn test_op_addi_neg() {
let mut m = init();
m.int_reg[6] = -5; // t1
m.instructions[0] = 0b11111111111_00110_000_00101_0010011;
// addi t0, t1, 2047
m.one_instruction();
assert_eq!(m.int_reg[5], 2042);
}
} }