Skip to content

Commit 803a68c

Browse files
committed
riscv: add mip unit tests
Adds basic unit tests for the `mip` register.
1 parent ffe20a5 commit 803a68c

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

riscv/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
2222
- Use CSR helper macros to define `mie` register
2323
- Use CSR helper macros to define `mimpid` register
2424
- Use CSR helper macros to define `misa` register
25+
- Use CSR helper macros to define `mip` register
2526

2627
## [v0.12.1] - 2024-10-20
2728

riscv/src/register/mip.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,25 @@ set_clear_csr!(
5454
set_clear_csr!(
5555
/// Supervisor External Interrupt Pending
5656
, set_sext, clear_sext, 1 << 9);
57+
58+
#[cfg(test)]
59+
mod tests {
60+
use super::*;
61+
62+
#[test]
63+
fn test_mip() {
64+
let mut m = Mip::from_bits(0);
65+
66+
test_csr_field!(m, ssoft);
67+
test_csr_field!(m, stimer);
68+
test_csr_field!(m, sext);
69+
70+
assert!(!m.msoft());
71+
assert!(!m.mtimer());
72+
assert!(!m.mext());
73+
74+
assert!(Mip::from_bits(1 << 3).msoft());
75+
assert!(Mip::from_bits(1 << 7).mtimer());
76+
assert!(Mip::from_bits(1 << 11).mext());
77+
}
78+
}

0 commit comments

Comments
 (0)