Added ability to exclude only extended exceptions

This commit is contained in:
transistor 2022-09-13 18:42:49 -07:00
parent a39557e233
commit 96e79329e7
2 changed files with 13 additions and 1 deletions

View File

@ -23,6 +23,7 @@ use moa::cpus::m68k::state::Status;
enum Selection { enum Selection {
Include, Include,
Exclude, Exclude,
ExcludeAddr,
Only, Only,
} }
@ -130,6 +131,11 @@ impl TestCase {
// If the supervisor stack changes by 6 or more bytes, then it's likely expected to be caused by an exception // If the supervisor stack changes by 6 or more bytes, then it's likely expected to be caused by an exception
self.initial_state.ssp.saturating_sub(self.final_state.ssp) >= 6 self.initial_state.ssp.saturating_sub(self.final_state.ssp) >= 6
} }
pub fn is_extended_exception_case(&self) -> bool {
// If the supervisor stack changes by 6 or more bytes, then it's likely expected to be caused by an exception
self.initial_state.ssp.saturating_sub(self.final_state.ssp) >= 10
}
} }
@ -296,7 +302,9 @@ fn test_json_file(path: PathBuf, args: &Args) -> (usize, usize, String) {
} }
// Only run the test if it's selected by the exceptions flag // Only run the test if it's selected by the exceptions flag
if case.is_exception_case() && args.exceptions == Selection::Exclude { if case.is_extended_exception_case() && args.exceptions == Selection::ExcludeAddr {
continue;
} else if case.is_exception_case() && args.exceptions == Selection::Exclude {
continue; continue;
} else if !case.is_exception_case() && args.exceptions == Selection::Only { } else if !case.is_exception_case() && args.exceptions == Selection::Only {
continue; continue;

View File

@ -1,4 +1,8 @@
Harte Tests:
* for every failing test in MOVEfromSR, it's caused by an exception where at 0x7F3 it should be 0xF5, it's actually 0xE5, which is the READ/WRITE flag not set correctly (1 = READ)
* make it possible to compile without audio support (minifb frontend requires it atm) * make it possible to compile without audio support (minifb frontend requires it atm)
* I need some better function for dealing with memory, like a function that copies data with a loop, or allows offset reading of * I need some better function for dealing with memory, like a function that copies data with a loop, or allows offset reading of