diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-03-02 11:57:09 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-03-02 11:57:09 +0100 |
commit | e21c1580b7acb598a6e3c38565434fe5d0e2ad7a (patch) | |
tree | 8c5cdc08fc2693ac8476825711cff24cb1b97aa5 /src/testdir/test_vimscript.vim | |
parent | bdace838c67c1bd94e55e34270a8325933891466 (diff) | |
download | vim-git-e21c1580b7acb598a6e3c38565434fe5d0e2ad7a.tar.gz |
patch 8.1.0990: floating point exception with "%= 0" and "/= 0"v8.1.0990
Problem: Floating point exception with "%= 0" and "/= 0".
Solution: Avoid dividing by zero. (Dominique Pelle, closes #4058)
Diffstat (limited to 'src/testdir/test_vimscript.vim')
-rw-r--r-- | src/testdir/test_vimscript.vim | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/src/testdir/test_vimscript.vim b/src/testdir/test_vimscript.vim index 41a1dda7d..57e673f3a 100644 --- a/src/testdir/test_vimscript.vim +++ b/src/testdir/test_vimscript.vim @@ -21,7 +21,7 @@ com! -nargs=1 Xout call Xout(<args>) " " Create a script that consists of the body of the function a:funcname. " Replace any ":return" by a ":finish", any argument variable by a global -" variable, and and every ":call" by a ":source" for the next following argument +" variable, and every ":call" by a ":source" for the next following argument " in the variable argument list. This function is useful if similar tests are " to be made for a ":return" from a function call or a ":finish" in a script " file. @@ -1457,6 +1457,43 @@ func Test_compound_assignment_operators() let x .= 'n' call assert_equal('2n', x) + " Test special cases: division or modulus with 0. + let x = 1 + let x /= 0 + if has('num64') + call assert_equal(0x7FFFFFFFFFFFFFFF, x) + else + call assert_equal(0x7fffffff, x) + endif + + let x = -1 + let x /= 0 + if has('num64') + call assert_equal(-0x7FFFFFFFFFFFFFFF, x) + else + call assert_equal(-0x7fffffff, x) + endif + + let x = 0 + let x /= 0 + if has('num64') + call assert_equal(-0x7FFFFFFFFFFFFFFF - 1, x) + else + call assert_equal(-0x7FFFFFFF - 1, x) + endif + + let x = 1 + let x %= 0 + call assert_equal(0, x) + + let x = -1 + let x %= 0 + call assert_equal(0, x) + + let x = 0 + let x %= 0 + call assert_equal(0, x) + " Test for string let x = 'str' let x .= 'ing' |