diff --git a/tests/harte_tests/src/main.rs b/tests/harte_tests/src/main.rs index e86c66f..7137795 100644 --- a/tests/harte_tests/src/main.rs +++ b/tests/harte_tests/src/main.rs @@ -23,6 +23,7 @@ use moa::cpus::m68k::state::Status; enum Selection { Include, Exclude, + ExcludeAddr, 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 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 - 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; } else if !case.is_exception_case() && args.exceptions == Selection::Only { continue; diff --git a/todo.txt b/todo.txt index a2e4d14..32dd63b 100644 --- a/todo.txt +++ b/todo.txt @@ -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) * I need some better function for dealing with memory, like a function that copies data with a loop, or allows offset reading of