Skip to content

Commit 3e1ed63

Browse files
committed
Add some more test cases
1 parent 7916566 commit 3e1ed63

File tree

1 file changed

+46
-1
lines changed

1 file changed

+46
-1
lines changed

src/addr.rs

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -631,7 +631,7 @@ mod tests {
631631

632632
#[test]
633633
#[cfg(feature = "step_trait")]
634-
fn virtaddr_step() {
634+
fn virtaddr_step_forward() {
635635
assert_eq!(Step::forward(VirtAddr(0), 0), VirtAddr(0));
636636
assert_eq!(Step::forward(VirtAddr(0), 1), VirtAddr(1));
637637
assert_eq!(
@@ -646,7 +646,32 @@ mod tests {
646646
Step::forward_checked(VirtAddr(0xffff_ffff_ffff_ffff), 1),
647647
None
648648
);
649+
assert_eq!(
650+
Step::forward(VirtAddr(0x7fff_ffff_ffff), 0x1234_5678_9abd),
651+
VirtAddr(0xffff_9234_5678_9abc)
652+
);
653+
assert_eq!(
654+
Step::forward(VirtAddr(0x7fff_ffff_ffff), 0x8000_0000_0000),
655+
VirtAddr(0xffff_ffff_ffff_ffff)
656+
);
657+
assert_eq!(
658+
Step::forward(VirtAddr(0x7fff_ffff_ff00), 0x8000_0000_00ff),
659+
VirtAddr(0xffff_ffff_ffff_ffff)
660+
);
661+
assert_eq!(
662+
Step::forward_checked(VirtAddr(0x7fff_ffff_ff00), 0x8000_0000_0100),
663+
None
664+
);
665+
assert_eq!(
666+
Step::forward_checked(VirtAddr(0x7fff_ffff_ffff), 0x8000_0000_0001),
667+
None
668+
);
669+
}
670+
649671

672+
#[test]
673+
#[cfg(feature = "step_trait")]
674+
fn virtaddr_step_backward() {
650675
assert_eq!(Step::backward(VirtAddr(0), 0), VirtAddr(0));
651676
assert_eq!(Step::backward_checked(VirtAddr(0), 1), None);
652677
assert_eq!(Step::backward(VirtAddr(1), 1), VirtAddr(0));
@@ -658,7 +683,27 @@ mod tests {
658683
Step::backward(VirtAddr(0xffff_8000_0000_0001), 1),
659684
VirtAddr(0xffff_8000_0000_0000)
660685
);
686+
assert_eq!(
687+
Step::backward(VirtAddr(0xffff_9234_5678_9abc), 0x1234_5678_9abd),
688+
VirtAddr(0x7fff_ffff_ffff)
689+
);
690+
assert_eq!(
691+
Step::backward(VirtAddr(0xffff_8000_0000_0000), 0x8000_0000_0000),
692+
VirtAddr(0)
693+
);
694+
assert_eq!(
695+
Step::backward(VirtAddr(0xffff_8000_0000_0000), 0x7fff_ffff_ff01),
696+
VirtAddr(0xff)
697+
);
698+
assert_eq!(
699+
Step::backward_checked(VirtAddr(0xffff_8000_0000_0000), 0x8000_0000_0001),
700+
None
701+
);
702+
}
661703

704+
#[test]
705+
#[cfg(feature = "step_trait")]
706+
fn virtaddr_steps_between() {
662707
assert_eq!(Step::steps_between(&VirtAddr(0), &VirtAddr(0)), Some(0));
663708
assert_eq!(Step::steps_between(&VirtAddr(0), &VirtAddr(1)), Some(1));
664709
assert_eq!(Step::steps_between(&VirtAddr(1), &VirtAddr(0)), None);

0 commit comments

Comments
 (0)