aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-11-05 07:24:06 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-11-05 12:27:45 +0800
commit8b0c5de4e0964109326a0befb1b3bff6aac4d0db (patch)
tree5cfde30567039d246c8b4fd960ccd2f07ed090fc /runtime
parenta86295cd5c2bf15a11eb05e226fd8e226154f6a6 (diff)
downloadrneovim-8b0c5de4e0964109326a0befb1b3bff6aac4d0db.tar.gz
rneovim-8b0c5de4e0964109326a0befb1b3bff6aac4d0db.tar.bz2
rneovim-8b0c5de4e0964109326a0befb1b3bff6aac4d0db.zip
vim-patch:partial:8.2.1183: assert_fails() checks the last error message
Problem: assert_fails() checks the last error message. Solution: Check the first error, it is more relevant. Fix all the tests that rely on the old behavior. https://github.com/vim/vim/commit/9b7bf9e98f06ece595fed7a3ff53ecce89797a53 Skip test_listener.vim, test_textprop.vim, test_viminfo.vim. Skip test_python2.vim: affected line fails and hasn't been ported. Skip test_python3.vim: affected lines fail and haven't been ported. Skip CHECK_LIST_MATERIALIZE. Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat (limited to 'runtime')
-rw-r--r--runtime/doc/testing.txt19
1 files changed, 17 insertions, 2 deletions
diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index f4375c3363..eda4ae1a5e 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -101,8 +101,23 @@ assert_exception({error} [, {msg}]) *assert_exception()*
assert_fails({cmd} [, {error} [, {msg}]]) *assert_fails()*
Run {cmd} and add an error message to |v:errors| if it does
- NOT produce an error. Also see |assert-return|.
- When {error} is given it must match in |v:errmsg|.
+ NOT produce an error or when {error} is not found in the
+ error message. Also see |assert-return|.
+
+ When {error} is a string it must be found literally in the
+ first reported error. Most often this will be the error code,
+ including the colon, e.g. "E123:". >
+ assert_fails('bad cmd', 'E987:')
+<
+ When {error} is a |List| with one or two strings, these are
+ used as patterns. The first pattern is matched against the
+ first reported error: >
+ assert_fails('cmd', ['E987:.*expected bool'])
+< The second pattern, if present, is matched against the last
+ reported error. To only match the last error use an empty
+ string for the first error: >
+ assert_fails('cmd', ['', 'E987:'])
+<
Note that beeping is not considered an error, and some failing
commands only beep. Use |assert_beeps()| for those.