mirror of
https://github.com/transistorfet/moa.git
synced 2024-05-28 13:41:30 +00:00
Fixed timing tests and added no io tests option
This commit is contained in:
parent
1c5ad3999a
commit
471695aff5
|
@ -1,4 +1,4 @@
|
||||||
Last run on 2024-03-31 at commit 6e7e315808228e03eaf8ad2e8152c087710f1d28 with flags --check-undocumented --check-timings
|
Last run on 2024-04-07 at commit 1c5ad3999afa5591ec8fcbcadf4797514c390031 with flags --check-undocumented --check-timings
|
||||||
|
|
||||||
00.json completed, all passed!
|
00.json completed, all passed!
|
||||||
01.json completed, all passed!
|
01.json completed, all passed!
|
||||||
|
@ -614,7 +614,7 @@ dd 82.json completed, all passed!
|
||||||
dd 83.json completed, all passed!
|
dd 83.json completed, all passed!
|
||||||
dd 84.json completed, all passed!
|
dd 84.json completed, all passed!
|
||||||
dd 85.json completed, all passed!
|
dd 85.json completed, all passed!
|
||||||
dd 86.json completed, all passed!
|
dd 86.json completed: 0 passed, 1000 FAILED
|
||||||
dd 87.json completed, all passed!
|
dd 87.json completed, all passed!
|
||||||
dd 88.json completed, all passed!
|
dd 88.json completed, all passed!
|
||||||
dd 89.json completed, all passed!
|
dd 89.json completed, all passed!
|
||||||
|
@ -622,7 +622,7 @@ dd 8a.json completed, all passed!
|
||||||
dd 8b.json completed, all passed!
|
dd 8b.json completed, all passed!
|
||||||
dd 8c.json completed, all passed!
|
dd 8c.json completed, all passed!
|
||||||
dd 8d.json completed, all passed!
|
dd 8d.json completed, all passed!
|
||||||
dd 8e.json completed, all passed!
|
dd 8e.json completed: 0 passed, 1000 FAILED
|
||||||
dd 8f.json completed, all passed!
|
dd 8f.json completed, all passed!
|
||||||
dd 90.json completed, all passed!
|
dd 90.json completed, all passed!
|
||||||
dd 91.json completed, all passed!
|
dd 91.json completed, all passed!
|
||||||
|
@ -630,7 +630,7 @@ dd 92.json completed, all passed!
|
||||||
dd 93.json completed, all passed!
|
dd 93.json completed, all passed!
|
||||||
dd 94.json completed, all passed!
|
dd 94.json completed, all passed!
|
||||||
dd 95.json completed, all passed!
|
dd 95.json completed, all passed!
|
||||||
dd 96.json completed, all passed!
|
dd 96.json completed: 0 passed, 1000 FAILED
|
||||||
dd 97.json completed, all passed!
|
dd 97.json completed, all passed!
|
||||||
dd 98.json completed, all passed!
|
dd 98.json completed, all passed!
|
||||||
dd 99.json completed, all passed!
|
dd 99.json completed, all passed!
|
||||||
|
@ -638,7 +638,7 @@ dd 9a.json completed, all passed!
|
||||||
dd 9b.json completed, all passed!
|
dd 9b.json completed, all passed!
|
||||||
dd 9c.json completed, all passed!
|
dd 9c.json completed, all passed!
|
||||||
dd 9d.json completed, all passed!
|
dd 9d.json completed, all passed!
|
||||||
dd 9e.json completed, all passed!
|
dd 9e.json completed: 0 passed, 1000 FAILED
|
||||||
dd 9f.json completed, all passed!
|
dd 9f.json completed, all passed!
|
||||||
dd a0.json completed, all passed!
|
dd a0.json completed, all passed!
|
||||||
dd a1.json completed, all passed!
|
dd a1.json completed, all passed!
|
||||||
|
@ -646,7 +646,7 @@ dd a2.json completed, all passed!
|
||||||
dd a3.json completed, all passed!
|
dd a3.json completed, all passed!
|
||||||
dd a4.json completed, all passed!
|
dd a4.json completed, all passed!
|
||||||
dd a5.json completed, all passed!
|
dd a5.json completed, all passed!
|
||||||
dd a6.json completed, all passed!
|
dd a6.json completed: 0 passed, 1000 FAILED
|
||||||
dd a7.json completed, all passed!
|
dd a7.json completed, all passed!
|
||||||
dd a8.json completed, all passed!
|
dd a8.json completed, all passed!
|
||||||
dd a9.json completed, all passed!
|
dd a9.json completed, all passed!
|
||||||
|
@ -654,7 +654,7 @@ dd aa.json completed, all passed!
|
||||||
dd ab.json completed, all passed!
|
dd ab.json completed, all passed!
|
||||||
dd ac.json completed, all passed!
|
dd ac.json completed, all passed!
|
||||||
dd ad.json completed, all passed!
|
dd ad.json completed, all passed!
|
||||||
dd ae.json completed, all passed!
|
dd ae.json completed: 0 passed, 1000 FAILED
|
||||||
dd af.json completed, all passed!
|
dd af.json completed, all passed!
|
||||||
dd b0.json completed, all passed!
|
dd b0.json completed, all passed!
|
||||||
dd b1.json completed, all passed!
|
dd b1.json completed, all passed!
|
||||||
|
@ -662,7 +662,7 @@ dd b2.json completed, all passed!
|
||||||
dd b3.json completed, all passed!
|
dd b3.json completed, all passed!
|
||||||
dd b4.json completed, all passed!
|
dd b4.json completed, all passed!
|
||||||
dd b5.json completed, all passed!
|
dd b5.json completed, all passed!
|
||||||
dd b6.json completed, all passed!
|
dd b6.json completed: 0 passed, 1000 FAILED
|
||||||
dd b7.json completed, all passed!
|
dd b7.json completed, all passed!
|
||||||
dd b8.json completed, all passed!
|
dd b8.json completed, all passed!
|
||||||
dd b9.json completed, all passed!
|
dd b9.json completed, all passed!
|
||||||
|
@ -670,7 +670,7 @@ dd ba.json completed, all passed!
|
||||||
dd bb.json completed, all passed!
|
dd bb.json completed, all passed!
|
||||||
dd bc.json completed, all passed!
|
dd bc.json completed, all passed!
|
||||||
dd bd.json completed, all passed!
|
dd bd.json completed, all passed!
|
||||||
dd be.json completed, all passed!
|
dd be.json completed: 0 passed, 1000 FAILED
|
||||||
dd bf.json completed, all passed!
|
dd bf.json completed, all passed!
|
||||||
dd c0.json completed, all passed!
|
dd c0.json completed, all passed!
|
||||||
dd c1.json completed, all passed!
|
dd c1.json completed, all passed!
|
||||||
|
@ -1038,7 +1038,7 @@ ed 5f.json completed, all passed!
|
||||||
ed 60.json completed: 2 passed, 998 FAILED
|
ed 60.json completed: 2 passed, 998 FAILED
|
||||||
ed 61.json completed, all passed!
|
ed 61.json completed, all passed!
|
||||||
ed 62.json completed, all passed!
|
ed 62.json completed, all passed!
|
||||||
ed 63.json completed, all passed!
|
ed 63.json completed: 0 passed, 1000 FAILED
|
||||||
ed 64.json completed, all passed!
|
ed 64.json completed, all passed!
|
||||||
ed 65.json completed, all passed!
|
ed 65.json completed, all passed!
|
||||||
ed 66.json completed, all passed!
|
ed 66.json completed, all passed!
|
||||||
|
@ -1046,7 +1046,7 @@ ed 67.json completed, all passed!
|
||||||
ed 68.json completed: 4 passed, 996 FAILED
|
ed 68.json completed: 4 passed, 996 FAILED
|
||||||
ed 69.json completed, all passed!
|
ed 69.json completed, all passed!
|
||||||
ed 6a.json completed, all passed!
|
ed 6a.json completed, all passed!
|
||||||
ed 6b.json completed, all passed!
|
ed 6b.json completed: 0 passed, 1000 FAILED
|
||||||
ed 6c.json completed, all passed!
|
ed 6c.json completed, all passed!
|
||||||
ed 6d.json completed, all passed!
|
ed 6d.json completed, all passed!
|
||||||
ed 6e.json completed, all passed!
|
ed 6e.json completed, all passed!
|
||||||
|
@ -1058,7 +1058,7 @@ ed 73.json completed, all passed!
|
||||||
ed 74.json completed, all passed!
|
ed 74.json completed, all passed!
|
||||||
ed 75.json completed, all passed!
|
ed 75.json completed, all passed!
|
||||||
ed 76.json completed, all passed!
|
ed 76.json completed, all passed!
|
||||||
ed 77.json completed, all passed!
|
ed 77.json completed: 0 passed, 1000 FAILED
|
||||||
ed 78.json completed: 7 passed, 993 FAILED
|
ed 78.json completed: 7 passed, 993 FAILED
|
||||||
ed 79.json completed, all passed!
|
ed 79.json completed, all passed!
|
||||||
ed 7a.json completed, all passed!
|
ed 7a.json completed, all passed!
|
||||||
|
@ -1066,7 +1066,7 @@ ed 7b.json completed, all passed!
|
||||||
ed 7c.json completed, all passed!
|
ed 7c.json completed, all passed!
|
||||||
ed 7d.json completed, all passed!
|
ed 7d.json completed, all passed!
|
||||||
ed 7e.json completed, all passed!
|
ed 7e.json completed, all passed!
|
||||||
ed 7f.json completed, all passed!
|
ed 7f.json completed: 0 passed, 1000 FAILED
|
||||||
ed a0.json completed, all passed!
|
ed a0.json completed, all passed!
|
||||||
ed a1.json completed: 0 passed, 1000 FAILED
|
ed a1.json completed: 0 passed, 1000 FAILED
|
||||||
ed a2.json completed: 0 passed, 1000 FAILED
|
ed a2.json completed: 0 passed, 1000 FAILED
|
||||||
|
@ -1234,7 +1234,7 @@ fd 82.json completed, all passed!
|
||||||
fd 83.json completed, all passed!
|
fd 83.json completed, all passed!
|
||||||
fd 84.json completed, all passed!
|
fd 84.json completed, all passed!
|
||||||
fd 85.json completed, all passed!
|
fd 85.json completed, all passed!
|
||||||
fd 86.json completed, all passed!
|
fd 86.json completed: 0 passed, 1000 FAILED
|
||||||
fd 87.json completed, all passed!
|
fd 87.json completed, all passed!
|
||||||
fd 88.json completed, all passed!
|
fd 88.json completed, all passed!
|
||||||
fd 89.json completed, all passed!
|
fd 89.json completed, all passed!
|
||||||
|
@ -1242,7 +1242,7 @@ fd 8a.json completed, all passed!
|
||||||
fd 8b.json completed, all passed!
|
fd 8b.json completed, all passed!
|
||||||
fd 8c.json completed, all passed!
|
fd 8c.json completed, all passed!
|
||||||
fd 8d.json completed, all passed!
|
fd 8d.json completed, all passed!
|
||||||
fd 8e.json completed, all passed!
|
fd 8e.json completed: 0 passed, 1000 FAILED
|
||||||
fd 8f.json completed, all passed!
|
fd 8f.json completed, all passed!
|
||||||
fd 90.json completed, all passed!
|
fd 90.json completed, all passed!
|
||||||
fd 91.json completed, all passed!
|
fd 91.json completed, all passed!
|
||||||
|
@ -1250,7 +1250,7 @@ fd 92.json completed, all passed!
|
||||||
fd 93.json completed, all passed!
|
fd 93.json completed, all passed!
|
||||||
fd 94.json completed, all passed!
|
fd 94.json completed, all passed!
|
||||||
fd 95.json completed, all passed!
|
fd 95.json completed, all passed!
|
||||||
fd 96.json completed, all passed!
|
fd 96.json completed: 0 passed, 1000 FAILED
|
||||||
fd 97.json completed, all passed!
|
fd 97.json completed, all passed!
|
||||||
fd 98.json completed, all passed!
|
fd 98.json completed, all passed!
|
||||||
fd 99.json completed, all passed!
|
fd 99.json completed, all passed!
|
||||||
|
@ -1258,7 +1258,7 @@ fd 9a.json completed, all passed!
|
||||||
fd 9b.json completed, all passed!
|
fd 9b.json completed, all passed!
|
||||||
fd 9c.json completed, all passed!
|
fd 9c.json completed, all passed!
|
||||||
fd 9d.json completed, all passed!
|
fd 9d.json completed, all passed!
|
||||||
fd 9e.json completed, all passed!
|
fd 9e.json completed: 0 passed, 1000 FAILED
|
||||||
fd 9f.json completed, all passed!
|
fd 9f.json completed, all passed!
|
||||||
fd a0.json completed, all passed!
|
fd a0.json completed, all passed!
|
||||||
fd a1.json completed, all passed!
|
fd a1.json completed, all passed!
|
||||||
|
@ -1266,7 +1266,7 @@ fd a2.json completed, all passed!
|
||||||
fd a3.json completed, all passed!
|
fd a3.json completed, all passed!
|
||||||
fd a4.json completed, all passed!
|
fd a4.json completed, all passed!
|
||||||
fd a5.json completed, all passed!
|
fd a5.json completed, all passed!
|
||||||
fd a6.json completed, all passed!
|
fd a6.json completed: 0 passed, 1000 FAILED
|
||||||
fd a7.json completed, all passed!
|
fd a7.json completed, all passed!
|
||||||
fd a8.json completed, all passed!
|
fd a8.json completed, all passed!
|
||||||
fd a9.json completed, all passed!
|
fd a9.json completed, all passed!
|
||||||
|
@ -1274,7 +1274,7 @@ fd aa.json completed, all passed!
|
||||||
fd ab.json completed, all passed!
|
fd ab.json completed, all passed!
|
||||||
fd ac.json completed, all passed!
|
fd ac.json completed, all passed!
|
||||||
fd ad.json completed, all passed!
|
fd ad.json completed, all passed!
|
||||||
fd ae.json completed, all passed!
|
fd ae.json completed: 0 passed, 1000 FAILED
|
||||||
fd af.json completed, all passed!
|
fd af.json completed, all passed!
|
||||||
fd b0.json completed, all passed!
|
fd b0.json completed, all passed!
|
||||||
fd b1.json completed, all passed!
|
fd b1.json completed, all passed!
|
||||||
|
@ -1282,7 +1282,7 @@ fd b2.json completed, all passed!
|
||||||
fd b3.json completed, all passed!
|
fd b3.json completed, all passed!
|
||||||
fd b4.json completed, all passed!
|
fd b4.json completed, all passed!
|
||||||
fd b5.json completed, all passed!
|
fd b5.json completed, all passed!
|
||||||
fd b6.json completed, all passed!
|
fd b6.json completed: 0 passed, 1000 FAILED
|
||||||
fd b7.json completed, all passed!
|
fd b7.json completed, all passed!
|
||||||
fd b8.json completed, all passed!
|
fd b8.json completed, all passed!
|
||||||
fd b9.json completed, all passed!
|
fd b9.json completed, all passed!
|
||||||
|
@ -1290,7 +1290,7 @@ fd ba.json completed, all passed!
|
||||||
fd bb.json completed, all passed!
|
fd bb.json completed, all passed!
|
||||||
fd bc.json completed, all passed!
|
fd bc.json completed, all passed!
|
||||||
fd bd.json completed, all passed!
|
fd bd.json completed, all passed!
|
||||||
fd be.json completed, all passed!
|
fd be.json completed: 0 passed, 1000 FAILED
|
||||||
fd bf.json completed, all passed!
|
fd bf.json completed, all passed!
|
||||||
fd c0.json completed, all passed!
|
fd c0.json completed, all passed!
|
||||||
fd c1.json completed, all passed!
|
fd c1.json completed, all passed!
|
||||||
|
@ -1611,5 +1611,5 @@ fd ff.json completed, all passed!
|
||||||
fe.json completed, all passed!
|
fe.json completed, all passed!
|
||||||
ff.json completed, all passed!
|
ff.json completed, all passed!
|
||||||
|
|
||||||
passed: 1584670, failed: 25330, total 98%
|
passed: 1564670, failed: 45330, total 97%
|
||||||
completed in 0m 8s
|
completed in 0m 9s
|
||||||
|
|
|
@ -46,6 +46,9 @@ struct Args {
|
||||||
/// Check instruction timings
|
/// Check instruction timings
|
||||||
#[clap(short = 't', long)]
|
#[clap(short = 't', long)]
|
||||||
check_timings: bool,
|
check_timings: bool,
|
||||||
|
/// Don't check I/O instructions
|
||||||
|
#[clap(short = 'i', long)]
|
||||||
|
no_check_io: bool,
|
||||||
/// Directory to the test suite to run
|
/// Directory to the test suite to run
|
||||||
#[clap(long, default_value = DEFAULT_RAD_TESTS)]
|
#[clap(long, default_value = DEFAULT_RAD_TESTS)]
|
||||||
testsuite: String,
|
testsuite: String,
|
||||||
|
@ -284,7 +287,7 @@ fn assert_state(
|
||||||
assert_value(cpu.state.iff1 as u8, expected.iff1, "iff1")?;
|
assert_value(cpu.state.iff1 as u8, expected.iff1, "iff1")?;
|
||||||
assert_value(cpu.state.iff2 as u8, expected.iff2, "iff2")?;
|
assert_value(cpu.state.iff2 as u8, expected.iff2, "iff2")?;
|
||||||
|
|
||||||
// Load data bytes into memory
|
// Compare data bytes in memory
|
||||||
for (addr, byte) in expected.ram.iter() {
|
for (addr, byte) in expected.ram.iter() {
|
||||||
let actual = memory
|
let actual = memory
|
||||||
.read_u8(Instant::START, *addr)
|
.read_u8(Instant::START, *addr)
|
||||||
|
@ -292,7 +295,7 @@ fn assert_state(
|
||||||
assert_value(actual, *byte, &format!("ram at {:x}", addr))?;
|
assert_value(actual, *byte, &format!("ram at {:x}", addr))?;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load data bytes into io space
|
// Compare data bytes in io space
|
||||||
for port in ports.iter() {
|
for port in ports.iter() {
|
||||||
if port.atype == "w" {
|
if port.atype == "w" {
|
||||||
let actual = io
|
let actual = io
|
||||||
|
@ -319,15 +322,14 @@ fn step_cpu_and_assert(
|
||||||
|
|
||||||
assert_state(cpu, memory, io, &case.final_state, args.check_extra_flags, &case.ports)?;
|
assert_state(cpu, memory, io, &case.final_state, args.check_extra_flags, &case.ports)?;
|
||||||
if args.check_timings {
|
if args.check_timings {
|
||||||
// TODO re-enable. not sure why it can't divide here
|
let cycles = clock_elapsed.as_duration() / cpu.frequency.period_duration();
|
||||||
//let cycles = clock_elapsed / cpu.frequency.period_duration();
|
if cycles != case.cycles.len() as u64 {
|
||||||
//if cycles != case.cycles.len() {
|
return Err(Error::Assertion(format!(
|
||||||
// return Err(Error::Assertion(format!(
|
"expected instruction to take {} cycles, but took {}",
|
||||||
// "expected instruction to take {} cycles, but took {}",
|
case.cycles.len(),
|
||||||
// case.cycles.len(),
|
cycles
|
||||||
// cycles
|
)));
|
||||||
// )));
|
}
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@ -379,6 +381,10 @@ fn test_json_file(path: PathBuf, args: &Args) -> (usize, usize, String) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if args.no_check_io && !case.ports.is_empty() {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Sort the ram memory for debugging help
|
// Sort the ram memory for debugging help
|
||||||
if args.debug {
|
if args.debug {
|
||||||
case.initial_state.ram.sort_by_key(|(addr, _)| *addr);
|
case.initial_state.ram.sort_by_key(|(addr, _)| *addr);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user