comparison tests/automated/lisp-tests.el @ 5886:c96000075e49

Be more careful about C integer overflow, #'parse-integer. src/ChangeLog addition: 2015-04-08 Aidan Kehoe <kehoea@parhasard.net> * data.c (parse_integer): Fix a bug in my detecting a C overflow here. tests/ChangeLog addition: 2015-04-08 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el: Add a couple of tests for #'parse-integer to check for a bug just fixed.
author Aidan Kehoe <kehoea@parhasard.net>
date Wed, 08 Apr 2015 21:03:18 +0100
parents e0f1dfaa821e
children bd644055ef44 a0e751d6c3ad
comparison
equal deleted inserted replaced
5885:c8bbb32fe124 5886:c96000075e49
3604 (parse-integer "":junk-allowed t)) 3604 (parse-integer "":junk-allowed t))
3605 '(nil 0))) 3605 '(nil 0)))
3606 (Assert (equal (multiple-value-list 3606 (Assert (equal (multiple-value-list
3607 (parse-integer "abc" :junk-allowed t)) 3607 (parse-integer "abc" :junk-allowed t))
3608 '(nil 0))) 3608 '(nil 0)))
3609 (Assert (eql (ignore-errors (parse-integer "100000000"
3610 :radix 16))
3611 (if (featurep 'bignum) (lsh 1 32) nil))
3612 "checking an overflow bug has been fixed")
3613 (Assert (eql (ignore-errors (parse-integer "-100000000"
3614 :radix 16))
3615 (if (featurep 'bignum) (- (lsh 1 32) nil))
3616 "checking an overflow bug has been fixed, negative int")
3609 (Check-Error invalid-argument (parse-integer "0123456789" 3617 (Check-Error invalid-argument (parse-integer "0123456789"
3610 :radix 8)) 3618 :radix 8))
3611 (Check-Error invalid-argument (parse-integer "abc")) 3619 (Check-Error invalid-argument (parse-integer "abc"))
3612 (Check-Error invalid-argument (parse-integer "efz" :radix 16)) 3620 (Check-Error invalid-argument (parse-integer "efz" :radix 16))
3613 3621