@@ -871,6 +871,10 @@ def test_madvise(self):
871871 size = 2 * PAGESIZE
872872 m = mmap .mmap (- 1 , size )
873873
874+ class Number :
875+ def __index__ (self ):
876+ return 2
877+
874878 with self .assertRaisesRegex (ValueError , "madvise start out of bounds" ):
875879 m .madvise (mmap .MADV_NORMAL , size )
876880 with self .assertRaisesRegex (ValueError , "madvise start out of bounds" ):
@@ -879,10 +883,14 @@ def test_madvise(self):
879883 m .madvise (mmap .MADV_NORMAL , 0 , - 1 )
880884 with self .assertRaisesRegex (OverflowError , "madvise length too large" ):
881885 m .madvise (mmap .MADV_NORMAL , PAGESIZE , sys .maxsize )
886+ with self .assertRaisesRegex (
887+ TypeError , "'str' object cannot be interpreted as an integer" ):
888+ m .madvise (mmap .MADV_NORMAL , PAGESIZE , "Not a Number" )
882889 self .assertEqual (m .madvise (mmap .MADV_NORMAL ), None )
883890 self .assertEqual (m .madvise (mmap .MADV_NORMAL , PAGESIZE ), None )
884891 self .assertEqual (m .madvise (mmap .MADV_NORMAL , PAGESIZE , size ), None )
885892 self .assertEqual (m .madvise (mmap .MADV_NORMAL , 0 , 2 ), None )
893+ self .assertEqual (m .madvise (mmap .MADV_NORMAL , 0 , Number ()), None )
886894 self .assertEqual (m .madvise (mmap .MADV_NORMAL , 0 , size ), None )
887895
888896 @unittest .skipUnless (hasattr (mmap .mmap , 'resize' ), 'requires mmap.resize' )
0 commit comments