aboutsummaryrefslogtreecommitdiff
path: root/test/functional
Commit message (Collapse)AuthorAge
...
* | eval: Move remaining get_tv_string* functions to eval/typval.cZyX2017-03-29
| |
* | eval: Move get_tv_lnum and get_tv_float to eval/typval.hZyX2017-03-29
| | | | | | | | | | | | | | | | | | Additionally - Rename former tv_get_float to tv_get_float_chk due to name conflict (former get_tv_float is better suited for being tv_get_float). - Add E907 error to get_tv_float() and test that it is being raised when appropriate.
* | eval: Make setmatches() return -1 in case of some failuresZyX2017-03-29
| |
* | *: Move some dictionary functions to typval.h and use char*ZyX2017-03-29
| | | | | | | | Also fixes buffer reusage in setmatches() and complete().
* | functests: Add tests for some *buf* functionsZyX2017-03-29
| |
* | terminal.c:redraw(): Avoid invalid cursor col (#6379)Justin M. Keyes2017-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed the call to validate_cursor() because mb_check_adjust_col() is already called in adjust_topline(). Closes #6378 References #6203 https://s3.amazonaws.com/archive.travis-ci.org/jobs/215498258/log.txt [ ERROR ] ...ovim/neovim/test/functional/terminal/scrollback_spec.lua @ 386: 'scrollback' option set to 0 behaves as 1 (10621.17 ms) ==================== File /home/travis/build/neovim/neovim/build/log/ubsan.12836 ==================== = ================================================================= = ==12836==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x62100002cd00 at pc 0x000000eafe90 bp 0x7ffc8661fe50 sp 0x7ffc8661fe48 = READ of size 1 at 0x62100002cd00 thread T0 = #0 0xeafe8f in utf_head_off /home/travis/build/neovim/neovim/src/nvim/mbyte.c:1457:7 = #1 0x6b890e in getvcol /home/travis/build/neovim/neovim/src/nvim/charset.c:1169:15 = #2 0x6bc777 in getvvcol /home/travis/build/neovim/neovim/src/nvim/charset.c:1336:5 = #3 0xfc067b in curs_columns /home/travis/build/neovim/neovim/src/nvim/move.c:730:5 = #4 0xfbc8db in validate_cursor /home/travis/build/neovim/neovim/src/nvim/move.c:510:5 = #5 0x14479ed in setcursor /home/travis/build/neovim/neovim/src/nvim/screen.c:6363:5 = #6 0x17fe054 in redraw /home/travis/build/neovim/neovim/src/nvim/terminal.c:1175:5 = #7 0x17f95e4 in terminal_enter /home/travis/build/neovim/neovim/src/nvim/terminal.c:392:3 = #8 0x70eb2b in edit /home/travis/build/neovim/neovim/src/nvim/edit.c:1300:7 = #9 0x11097d1 in normal_finish_command /home/travis/build/neovim/neovim/src/nvim/normal.c:947:13 = #10 0x1081191 in normal_execute /home/travis/build/neovim/neovim/src/nvim/normal.c:1138:3 = #11 0x170b813 in state_enter /home/travis/build/neovim/neovim/src/nvim/state.c:58:26 = #12 0x103631b in normal_enter /home/travis/build/neovim/neovim/src/nvim/normal.c:464:3 = #13 0xdfb7a8 in main /home/travis/build/neovim/neovim/src/nvim/main.c:552:3 = #14 0x2b8a3c85bf44 in __libc_start_main /build/eglibc-MjiXCM/eglibc-2.19/csu/libc-start.c:287 = #15 0x447b25 in _start (/home/travis/build/neovim/neovim/build/bin/nvim+0x447b25) = = 0x62100002cd00 is located 0 bytes to the right of 4096-byte region [0x62100002bd00,0x62100002cd00) = allocated by thread T0 here: = #0 0x4f1e98 in malloc (/home/travis/build/neovim/neovim/build/bin/nvim+0x4f1e98) = #1 0xf28774 in try_malloc /home/travis/build/neovim/neovim/src/nvim/memory.c:84:15 = #2 0xf28934 in xmalloc /home/travis/build/neovim/neovim/src/nvim/memory.c:118:15 = #3 0xec7be8 in mf_alloc_bhdr /home/travis/build/neovim/neovim/src/nvim/memfile.c:646:17 = #4 0xec58d4 in mf_new /home/travis/build/neovim/neovim/src/nvim/memfile.c:297:12 = #5 0xeda8a8 in ml_new_data /home/travis/build/neovim/neovim/src/nvim/memline.c:2697:16 = #6 0xed7beb in ml_open /home/travis/build/neovim/neovim/src/nvim/memline.c:349:8 = #7 0x643fcd in open_buffer /home/travis/build/neovim/neovim/src/nvim/buffer.c:109:7 = #8 0xa7038c in do_ecmd /home/travis/build/neovim/neovim/src/nvim/ex_cmds.c:2483:24 = #9 0xb5bb49 in do_exedit /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:6839:9 = #10 0xb7b6d8 in ex_edit /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:6767:3 = #11 0xb2a598 in do_one_cmd /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:2208:5 = #12 0xb08f47 in do_cmdline /home/travis/build/neovim/neovim/src/nvim/ex_docmd.c:602:20 = #13 0x109997b in nv_colon /home/travis/build/neovim/neovim/src/nvim/normal.c:4492:18 = #14 0x1081188 in normal_execute /home/travis/build/neovim/neovim/src/nvim/normal.c:1135:3 = #15 0x170b813 in state_enter /home/travis/build/neovim/neovim/src/nvim/state.c:58:26 = #16 0x103631b in normal_enter /home/travis/build/neovim/neovim/src/nvim/normal.c:464:3 = #17 0xdfb7a8 in main /home/travis/build/neovim/neovim/src/nvim/main.c:552:3 = #18 0x2b8a3c85bf44 in __libc_start_main /build/eglibc-MjiXCM/eglibc-2.19/csu/libc-start.c:287 = = SUMMARY: AddressSanitizer: heap-buffer-overflow /home/travis/build/neovim/neovim/src/nvim/mbyte.c:1457:7 in utf_head_off = Shadow bytes around the buggy address: = 0x0c427fffd950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 = 0x0c427fffd960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 = 0x0c427fffd970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 = 0x0c427fffd980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 = 0x0c427fffd990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 = =>0x0c427fffd9a0:[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa = 0x0c427fffd9b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa = 0x0c427fffd9c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa = 0x0c427fffd9d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa = 0x0c427fffd9e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa = 0x0c427fffd9f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa = Shadow byte legend (one shadow byte represents 8 application bytes): = Addressable: 00 = Partially addressable: 01 02 03 04 05 06 07 = Heap left redzone: fa = Heap right redzone: fb = Freed heap region: fd = Stack left redzone: f1 = Stack mid redzone: f2 = Stack right redzone: f3 = Stack partial redzone: f4 = Stack after return: f5 = Stack use after scope: f8 = Global redzone: f9 = Global init order: f6 = Poisoned by user: f7 = Container overflow: fc = Array cookie: ac = Intra object redzone: bb = ASan internal: fe = Left alloca redzone: ca = Right alloca redzone: cb = ==12836==ABORTING ===================================================================================================== ./test/helpers.lua:82: assertion failed! stack traceback: ./test/helpers.lua:82: in function 'check_logs' ./test/functional/helpers.lua:643: in function <./test/functional/helpers.lua:642>
* | vim-patch:7.4.2343 and mark NA patches (#6384)lonerover2017-03-29
| | | | | | | | | | | | | | | | | | | | vim-patch:7.4.2343 Problem: Too many old file tests. Solution: Turn several into new style tests. (Yegappan Lakshmanan) https://github.com/vim/vim/commit/53f1673cd909eb1c809c6a9086e3d104a0df9bed
* | terminal: global 'scrollback' #6352Jakob Schnitzer2017-03-27
|/ | | | | | | | | | | Make the 'scrollback' option work like most other buffer-local options: - `:set scrollback=x` sets the global and local value - `:setglobal scrollback=x` sets only the global default - new terminal buffers inherit the global Normal buffers are still always -1, and :setlocal there is an error. Closes #6337
* highlight: :match should override 'list' (#6343)Yichao Zhou2017-03-26
| | | Closes #4946
* Merge #6221Justin M. Keyes2017-03-25
|\
| * Robustly handle folds during a :move commandMatthew Malcomson2017-03-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to re-order marks according to the :move command, do_move() uses mark_adjust() in a non-standard manner. The non-standard action is that it moves some marks *past* other marks. This doesn't matter for marks, but mark_adjust() calls foldMarkAdjust() which simply changes fold starts and lengths and doesn't have enough information to know that other folds have to be checked and reordered. The array of folds for each window are assumed to be in order of increasing line number, and if this gets broken some folds can get "lost". There has been a previous patch to avoid this problem by deleting and recalculating all folds in the window, but this comes at the cost of closing all folds when executing :move, and doesn't cover the case of manual folds. This patch adds a new function foldMoveRange() specifically for the :move command that handles reordering folds as well as simply moving them. Additionally, we allow calling mark_adjust_nofold() that does the same as mark_adjust() but doesn't affect any fold array. Calling mark_adjust_nofold() should be done in the same manner as calling mark_adjust(), but according changes to the fold arrays must be done seperately by the calling function. vim-patch:8.0.0457 vim-patch:8.0.0459 vim-patch:8.0.0461 vim-patch:8.0.0465
* | vim-patch:8.0.0259Justin M. Keyes2017-03-22
|/ | | | | | | Problem: Tab commands do not handle count correctly. (Ken Hamada) Solution: Add ADDR_TABS_RELATIVE. (Hirohito Higashi) https://github.com/vim/vim/commit/2f72c70657129c16e6b0e413752a775c804f02f8
* clipboard: set v:register after startup (#5708)Björn Linse2017-03-18
| | | Fixes #5697
* test/put_spec: 2x speedup (#6294)Matthew Malcomson2017-03-18
| | | | Instead of helpers.clear() between each test, use execute('enew!') and ensure the state that matters is reset between each test.
* terminal: Support extra arguments in 'shell'. #4504Jack Bracewell2017-03-17
| | | | | | | | | | | | | Tokenize p_sh if used as default in ex_terminal(). Previously p_sh was used as the first arg in a list when calling termopen(), this would try to call an untokenized version of shell, meaning if you had an argument in 'shell': set shell=/bin/bash\ --login the command would fail. Helped-by: oni-link <knil.ino@gmail.com> Closes #3999
* Merge #6087 from justinmk/defaultsJustin M. Keyes2017-03-17
|\ | | | | defaults: 'ruler', 'showcmd', 'belloff=all'
| * defaults: 'showcmd', 'belloff', 'ruler'Justin M. Keyes2017-03-16
| | | | | | | | | | | | | | | | | | | | | | - Vim "unix default" of 'noshowcmd' is serving few users. And it's inconsistent. - 'ruler' and 'belloff=all' improve the out-of-the-box experience. - Continue to use 'noshowcmd' and 'noruler' by default in the functional tests to keep them fast. TODO: Add a "disable slow stuff" command or mapping to address the use-case of a very slow terminal connection.
* | job-control: set CLOEXEC on pty processes. #5986Matthew Malcomson2017-03-17
|/ | | | | Before this change, new processes started with libuv prevented SIGHUP from reaching pty processes (by keeping the ptmx file descriptor open).
* test/termclose: Avoid indeterminism (#6281)Justin M. Keyes2017-03-15
|
* api: add detailed checks for compatibility and correct "since" valueBjörn Linse2017-03-15
|
* api: add api_level_1 fixureBjörn Linse2017-03-15
|
* Merge #6254 'vim-patch:7.4.2135,7.4.2144,7.4.2151'Justin M. Keyes2017-03-15
|\
| * vim-patch:7.4.2135lonerover2017-03-11
| | | | | | | | | | | | | | Problem: Various tiny issues. Solution: Update comments, white space, etc. https://github.com/vim/vim/commit/89eaa4185efacab253b23a182c1c8a7bbf1096c9
* | DirChanged: avoid redundant events on 'autochdir'Justin M. Keyes2017-03-12
| |
* | DirChanged: trigger when switching scopesJustin M. Keyes2017-03-12
| | | | | | | | Closes #6054
* | DirChanged: Publish _after_ updating win/tab CWD.Justin M. Keyes2017-03-12
| | | | | | | | | | | | So getcwd() works correctly during DirChanged event. Closes #6260
* | test/scrollback: wiggle-room (#6256)Justin M. Keyes2017-03-11
| |
* | rplugin: Call s:LoadRemotePlugins() on startup.Justin M. Keyes2017-03-11
|/ | | | | | | | | | Dispense with the FuncUndefined/CmdUndefined quasi-optimization. If there are no rplugins, plugin/rplugin.vim takes less than 1ms. Closes #5821 Closes #6250 Helped-by: Qiming zhao <chemzqm@gmail.com>
* test/let_spec: self-referencing List. (#6228)Justin M. Keyes2017-03-08
| | | Regression test coverage for #6070.
* Merge pull request #6225 from jamessan/vim-7.4.2051James McCoy2017-03-07
|\ | | | | vim-patch:7.4.2051,7.4.2068,7.4.2097
| * vim-patch:7.4.2051James McCoy2017-03-06
| | | | | | | | | | | | | | Problem: No proper testing of trunc_string(). Solution: Add a unittest for message.c. https://github.com/vim/vim/commit/502ae4ba63561c98ac69af26cd9883bfd18d225f
* | api: nvim_buf_set_lines(): Avoid invalid ml_get. #6019Matthew Malcomson2017-03-07
| | | | | | | | | | | | | | | | | | | | When the buffer that nvim_buf_set_lines() is changing is not in any vim window, fix_cursor() leads to calling ml_get_buf() with an invalid line number. The condition that fix_cursor() was called on was (buf == curbuf), but this is always true because of the call to switch_to_win_for_buf() earlier in the function. Instead this should be predicated on (save_curbuf.br_buf == NULL)
* | test: backtick expansion #6218Justin M. Keyes2017-03-06
|/
* terminal.c: Reset cursor postion when using termopen() (#6212)oni-link2017-03-04
| | | | | | | | | | After using 'termopen("echo") the current buffer content is changed, but the cursor position of the current window is not updated. Because of this, a call to 'mb_adjust_cursor()' can lead to a heap-buffer-overflow. Fix this by resetting the cursor for the current window. Fixes #3161
* vim-patch:8.0.0388Matthew Malcomson2017-03-02
| | | | | | | | | | | | | | | | Fix a problem when filtering manually folded lines When foldMarkAdjustRecurse() is called to adjust folds that start inside the range of lines that are being moved and end outside that range, it calculates `amount_after` for its recursive call incorrectly. The calculation assumes that folds inside the changed range are being deleted, but this is not always the case. This means nested folds that start after the changed range of lines are shifted an incorrect amount. We fix this by calculating the `amount_after` differently if the folds inside the changed range are not being deleted.
* test: luacheck updateJustin M. Keyes2017-03-01
| | | | | We pull luacheck HEAD, so this is a "catch up" commit to fix newly-discovered errors.
* terminal: Keep cursor position.Justin M. Keyes2017-03-01
| | | | | | Let the terminal dictate the normal-mode cursor position. This will be disorienting sometimes, but it is closer to what users expect vs always going to the last line.
* Merge #6191 from jamessan/vim-42ebd06Justin M. Keyes2017-02-28
|\ | | | | vim-patch:42ebd06,7.4.2098,6f1d9a0,7.4.2095
| * vim-patch:7.4.2095James McCoy2017-02-27
| | | | | | | | | | | | | | | | | | | | Problem: Man test fails when run with the GUI. Solution: Adjust for different behavior of GUI. Add assert_inrange(). https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78 Only changes related to assert_inrange() were included, since we have a distinct man plugin.
* | test: Refactor fold tests (#5993)Matthieu Coudron2017-02-28
|/
* edit.c: CTRL-SPC: Insert previously-inserted text. #6090Matthew Malcomson2017-02-28
| | | | | | | | | | | | | Default Vim behavior of i_CTRL-<Space> is to insert the last-inserted text and exit insert mode. :help i_CTRL-@ Before this commit that did not happen because insert_handle_key() checks for NUL instead of checking for ' ' with a CTRL `mod_mask`. I'm leaving the check for NUL despite the fact that at the moment that key is never seen when using the terminal UI (not for C-Space, nor C-@). This is because I assume it's still allowed for other front-ends to pass NUL, but at the moment the terminal UI isn't.
* vim-patch:7.4.2200James McCoy2017-02-27
| | | | | | | | Problem: Cannot get all information about a quickfix list. Solution: Add an optional argument to get/set loc/qf list(). (Yegappan Lakshmanan) https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
* Merge #6112 from ZyX-I/split-eval'/buf_get_changedtickJustin M. Keyes2017-02-27
|\ | | | | Better b:changedtick support
| * *: Fix linter errorsZyX2017-02-23
| |
| * api: Make sure dict_set_var doesn’t edit read-only valuesZyX2017-02-23
| | | | | | Fixes #6147
| * functests: Destroy accidental folds in api/vim_specZyX2017-02-23
| |
| * eval: Forbid (un)locking b:changedtickZyX2017-02-23
| | | | | | Port of vim-patch:8.0.0343
| * eval: Make sure `islocked('b:.changedtick')` does not error outZyX2017-02-23
| | | | | | Port of vim-patch:8.0.0345
| * eval: Specify more precise len for var_check_ro in get_lvalZyX2017-02-23
| |
| * functests: Add some more testsZyX2017-02-23
| |