rustyapple/tests.rs

53 lines
925 B
Rust
Raw Permalink Normal View History

2014-01-15 05:05:42 +00:00
use cpu::Cpu;
use mem::Mem;
use a2::AppleII;
2014-01-16 01:11:36 +00:00
use a2::Peripheral;
2014-01-15 19:03:43 +00:00
use diskii::DiskController;
2014-01-15 05:05:42 +00:00
//
fn return_two() -> int {
2
}
#[test]
fn return_two_test() {
let x = return_two();
assert!(x == 2);
}
pub struct Ram { mem: [u8, ..0x800] }
impl Mem for Ram {
fn loadb(&mut self, addr: u16) -> u8 { self.mem[addr & 0x7ff] }
fn storeb(&mut self, addr: u16, val: u8) { self.mem[addr & 0x7ff] = val }
}
#[test]
fn test_cpu()
{
let ram = Ram { mem: [ 0, ..0x800 ] };
let mut cpu = Cpu::new(ram);
cpu.reset();
assert!(cpu.regs.pc == 0);
cpu.step();
}
#[test]
fn test_a2()
{
let mut a2 = AppleII::new();
a2.read_roms();
2014-01-15 19:03:43 +00:00
let mut dc: DiskController = DiskController::new();
dc.load_disk(0, "JUNK4.DSK");
2014-01-16 01:11:36 +00:00
assert!(dc.has_disk(0));
2014-01-15 19:03:43 +00:00
a2.set_slot(6, ~dc);
2014-01-15 05:05:42 +00:00
let mut cpu = Cpu::new(a2);
cpu.reset();
2014-01-16 01:11:36 +00:00
for i in range(0,10*1000000) {
2014-01-15 05:05:42 +00:00
cpu.step();
}
}