test.rs 907 B

12345678910111213141516171819202122232425
  1. use std::panic;
  2. macro_rules! absv_i2 {
  3. ($intrinsic:ident: $ty:ident) => {
  4. #[test]
  5. fn $intrinsic() {
  6. assert!(panic::catch_unwind(|| ::$intrinsic(::std::$ty::MIN)).is_err());
  7. assert_eq!(::$intrinsic(::std::$ty::MIN + 1), ::std::$ty::MAX);
  8. assert_eq!(::$intrinsic(::std::$ty::MIN + 2), ::std::$ty::MAX - 1);
  9. assert_eq!(::$intrinsic(-1), 1);
  10. assert_eq!(::$intrinsic(-2), 2);
  11. assert_eq!(::$intrinsic(0), 0);
  12. assert_eq!(::$intrinsic(1), 1);
  13. assert_eq!(::$intrinsic(2), 2);
  14. assert_eq!(::$intrinsic(2), 2);
  15. assert_eq!(::$intrinsic(::std::$ty::MAX - 1), ::std::$ty::MAX - 1);
  16. assert_eq!(::$intrinsic(::std::$ty::MAX), ::std::$ty::MAX);
  17. }
  18. }
  19. }
  20. absv_i2!(__absvsi2: i32);
  21. absv_i2!(__absvdi2: i64);
  22. // TODO(rust-lang/35118)?
  23. // absv_i2!(__absvti2: i128);