@@ -1763,6 +1763,11 @@ fn test_i128_operators() {
17631763 @ - 0x80000000000000000000000000000000_i128 ,
17641764 ' failed MIN_I128 as mul result' ,
17651765 );
1766+ assert_eq (
1767+ @ (1_i128 * 0x7fffffffffffffffffffffffffffffff_i128 ),
1768+ @ 0x7fffffffffffffffffffffffffffffff_i128 ,
1769+ ' failed MAX_I128 as mul result' ,
1770+ );
17661771 assert_lt (1_i128 , 4_i128 , ' 1 < 4' );
17671772 assert_le (1_i128 , 4_i128 , ' 1 <= 4' );
17681773 assert (! (4_i128 < 4_i128 ), ' !(4 < 4)' );
@@ -1829,23 +1834,29 @@ fn test_i128_add_underflow() {
18291834}
18301835
18311836#[test]
1832- #[should_panic]
1837+ #[should_panic(expected : ( ' i128_mul Overflow ' ,)) ]
18331838fn test_i128_mul_overflow_1 () {
18341839 0x10000000000000000000000000000000_i128 * 0x10000000000000000000000000000000_i128 ;
18351840}
18361841
18371842#[test]
1838- #[should_panic]
1843+ #[should_panic(expected : ( ' i128_mul Overflow ' ,)) ]
18391844fn test_i128_mul_overflow_2 () {
18401845 0x11000000000000000000000000000000_i128 * 0x10000000000000000000000000000000_i128 ;
18411846}
18421847
18431848#[test]
1844- #[should_panic]
1849+ #[should_panic(expected : ( ' i128_mul Overflow ' ,)) ]
18451850fn test_i128_mul_overflow_3 () {
18461851 2_i128 * 0x40000000000000000000000000000000_i128 ;
18471852}
18481853
1854+ #[test]
1855+ #[should_panic(expected: (' i128_mul Overflow' ,))]
1856+ fn test_i128_mul_overflow_min_times_minus_one () {
1857+ - 0x80000000000000000000000000000000_i128 * - 1_i128 ;
1858+ }
1859+
18491860#[test]
18501861#[should_panic(expected: ' attempt to divide with overflow' )]
18511862fn test_i128_divmod_overflow () {
0 commit comments