aboutsummaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAge
* input.c: Process only safe events before blocking.Justin M. Keyes2017-04-28
| | | | | Introduce multiqueue_process_priority() to process only events at or above a certain priority.
* api: nvim_get_mode()Justin M. Keyes2017-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | | Asynchronous API functions are served immediately, which means pending input could change the state of Nvim shortly after an async API function result is returned. nvim_get_mode() is different: - If RPCs are known to be blocked, it responds immediately (without flushing the input/event queue) - else it is handled just-in-time before waiting for input, after pending input was processed. This makes the result more reliable (but not perfect). Internally this is handled as a special case, but _semantically_ nothing has changed: API users never know when input flushes, so this internal special-case doesn't violate that. As far as API users are concerned, nvim_get_mode() is just another asynchronous API function. In all cases nvim_get_mode() never blocks for more than the time it takes to flush the input/event queue (~µs). Note: This doesn't address #6166; nvim_get_mode() will provoke #6166 if e.g. `d` is operator-pending. Closes #6159
* api/ext_tabline: `curtab` should be a Tabpage handle.Justin M. Keyes2017-04-28
|
* defaults_spec: Test changing :filetype/:syntax in -c, after defaultsJames McCoy2017-04-27
|
* test: inccommand_spec: Avoid indeterminism. (#6592)Justin M. Keyes2017-04-26
|
* api/ext_tabline: List of Dicts.Justin M. Keyes2017-04-26
|
* api: nvim_ui_attach(): Flatten ext_* options.Justin M. Keyes2017-04-26
|
* api/ui: externalize tablineJustin M. Keyes2017-04-26
| | | | | | - Work with a bool[] array parallel to the UIWidget enum. - Rename some functions. - Documentation.
* api/ui: externalize tablineDongdong Zhou2017-04-26
|
* test/fs: sanity check for literal "~" directory (#6579)Justin M. Keyes2017-04-24
| | | | If the CWD contains a directory with the literal name "~" then the tests will have bogus failures.
* api: Do not translate error messages.Justin M. Keyes2017-04-24
| | | | | | | | | | Also re-word some error messages: - "Key does not exist: %s" - "Invalid channel: %<PRIu64>" - "Request array size must be 4 (request) or 3 (notification)" - "String cannot contain newlines" References #6150
* api: Do not truncate errors <1 MB. #6237Sander Bosma2017-04-23
| | | | Closes #5984
* test: api: Do not truncate errors <1 MB.Justin M. Keyes2017-04-23
|
* Merge #6513 from ZyX-I/lazier-arg_errmsg-gettextJustin M. Keyes2017-04-23
|\
| * Merge branch 'master' into lazier-arg_errmsg-gettextZyX2017-04-21
| |\
| * | unittests: Add a test for TV_CSTRINGZyX2017-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not using enum{} because SIZE_MAX exceeds integer and I do not really like how enum definition is described in C99: 1. Even though all values must fit into the chosen type (6.7.2.2, p 4) the type to choose is still implementation-defined. 2. 6.4.4.3 explicitly states that “an identifier declared as an enumeration constant has type `int`”. So it looks like “no matter what type was chosen for enumeration, constants will be integers”. Yet the following simple program: #include <stdint.h> #include <stdio.h> #include <stddef.h> enum { X=SIZE_MAX }; int main(int argc, char **argv) { printf("x:%zu m:%zu t:%zu v:%zu", sizeof(X), sizeof(SIZE_MAX), sizeof(size_t), (size_t)X); } yields one of the following using different compilers: - clang/gcc/pathcc: `x:8 m:8 t:8 v:18446744073709551615` - pcc/tcc: `x:4 m:8 t:8 v:1844674407370955161` If I remove the cast of X to size_t then pcc/tcc both yield `x:4 m:8 t:8 v:4294967295`, other compilers’ output does not change. All compilers were called with `$compiler -std=c99 -xc -` (feeding program from echo), except for `tcc` which has missing `-std=c99`. `pcc` seems to ignore the argument though: it is perfectly fine with `-std=c1000`.
* | | Merge #6539 'More cursor shape modes'Justin M. Keyes2017-04-21
|\ \ \
| * | | tests: detect invalid helpers.sleepBjörn Linse2017-04-21
| | | |
| * | | ui: use an array for mode stylesBjörn Linse2017-04-21
| | | |
| * | | ui: add tests for new cursor shape modesBjörn Linse2017-04-21
| | | |
* | | | ex_cmds.c: Fix bug in ex_z (#6557)sander22017-04-21
| |_|/ |/| | | | | | | | vim-patch:8.0.0571
* | | Merge #6550 from ZyX-I/pvs-check-commentJustin M. Keyes2017-04-20
|\ \ \
| * | | *: Add comment to all C filesZyX2017-04-19
| |/ /
* / / 'scrollback': Allow :setlocal -1 on normal buffersJustin M. Keyes2017-04-20
|/ / | | | | | | Avoids a spurious :loadview error.
* | test: Cursor after `:hi clear|syntax reset`Justin M. Keyes2017-04-17
| | | | | | | | Also enable tests on Windows.
* | fold: foldMoveRange(): fix :move bug #6534Matthew Malcomson2017-04-17
| | | | | | | | | | | | | | | | | | | | | | | | Closes #6540 In #6221 there was a mistake in calculating which folds need to be re-ordered. When there are no folds after those that have been adjusted, then `move_end` remains 0. This results in reverse_fold_order() swapping folds that have been adjusted with uninitialised folds in the remainder of the grow array. Add a check in foldMoveRange() to account for this case.
* | ops: fix i<c-r> with multi-byte text (#6524)Björn Linse2017-04-15
|/
* test: check_cores(): Escape $TMPDIR path. (#6520)Justin M. Keyes2017-04-14
| | | | | | Lua string:match() considers hyphen to be a special char, we want the path to be a literal match. Also remove "./", etc. References #6483
* win: os_shell_is_cmdexe() + testsJustin M. Keyes2017-04-12
|
* win: default shellxescape, shellxquote to emptyRui Abreu Ferreira2017-04-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calling cmd.exe in Windows follows a very different pattern from Vim. The primary difference is that Vim does a nested call to cmd.exe, e.g. the following call in Vim system('echo a 2>&1') spawns the following processes "C:\Program Files (x86)\Vim\vim80\vimrun" -s C:\Windows\system32\cmd.exe /c (echo a 2^>^&1 ^>C:\Users\dummy\AppData\Local\Temp\VIoC169.tmp 2^>^&1) C:\Windows\system32\cmd.exe /c C:\Windows\system32\cmd.exe /c (echo a 2^>^&1 ^>C:\Users\dummy\AppData\Local\Temp\VIo3C6C.tmp 2^>^&1) C:\Windows\system32\cmd.exe /c (echo a 2>&1 >C:\Users\dummy\AppData\Local\Temp\VIo3C6C.tmp 2>&1) The escaping with ^ is needed because cmd.exe calls itself and needs to preserve the special metacharacters for the last call. However in nvim no nested call is made, system('') spawns a single cmd.exe process. Setting shellxescape to "" disables escaping with ^. The previous default for shellxquote=( wrapped any command in parenthesis, in Vim this is more meaningful due to the use of tempfiles to store the output and redirection (also see &shellquote). There is a slight benefit in having the default be empty because some expressions that run in console will not run within parens e.g. due to unbalanced double quotes system('echo "a b')
* win: libuv_process_spawn(): special-case cmd.exeRui Abreu Ferreira2017-04-12
| | | | | | | | | | | | | | | | | | Disable CommandLineToArgvW-standard quoting for cmd.exe. libuv assumes spawned processes follow the convention expected by CommandLineToArgvW(). But cmd.exe is non-conformant, so for cmd.exe: - With system([]), the caller has full control (and responsibility) to quote arguments correctly. - With system(''), shell* options are used. libuv quoting is disabled if argv[0] is: - cmd.exe - cmd - $COMSPEC resolving to a path with filename cmd.exe Closes #6329 References #6387
* win/test: Enable more system() testsRui Abreu Ferreira2017-04-12
|
* win: defaults: 'shellredir', 'shellxquote', 'shellxescape'Justin M. Keyes2017-04-12
|
* ci: install Turkish locale and make locale tests more reliableBjörn Linse2017-04-11
|
* test: helpers.execute() => helpers.feed_command()Justin M. Keyes2017-04-11
|
* win/test: Enable recover_spec.luaJustin M. Keyes2017-04-11
|
* test: `:file {name}`Justin M. Keyes2017-04-11
|
* test/rmdir(): fallback to Nvim delete()Justin M. Keyes2017-04-11
| | | | | | | Lua has too many pitfalls here: - os.execute() requires shell-escaping - os.execute() has breaking changes between Lua 5.1 and 5.2 - No native way in Lua to handle "readonly" etc. on Windows
* test/rmdir(): Remove `readonly` attr on Windows.Justin M. Keyes2017-04-10
|
* Merge #6479 from bfredl/tolowerJustin M. Keyes2017-04-10
|\ | | | | remove vim_tolower/etc functions with broken locale-dependent behavior
| * test: add tests for gu/gU behavior in Turkish localeBjörn Linse2017-04-10
| |
* | Merge #6488 from ZyX-I/coverity-fixesJustin M. Keyes2017-04-10
|\ \ | |/ |/|
| * coverity/56795: Fix NULL dereference in :syn keyword non-printableZyX2017-04-09
| | | | | | | | Bug was introduced 3 years earlier, in 13848aa: NULL keyword_copy was incorrectly treated as an indicator of OOM.
| * coverity/13689: Check file header with memcmpZyX2017-04-09
| | | | | | | | Not that it is actually useful (would fail in any case), but should fix coverity report.
| * coverity/13688: Check for NUL bytes in salfromZyX2017-04-09
| |
| * coverity/13687: Do not allow NUL byte in region namesZyX2017-04-09
| |
| * spellfile: Use old errorZyX2017-04-09
| | | | | | This makes first test not actually show any change in behaviour.
| * coverity/13686: Do not allow NUL byte in precondition regexZyX2017-04-09
| | | | | | | | | | | | | | Before this commit it emitted e_spell_trunc in the first case and treated file as completely valid on the second. While first is fine (both errors are actually valid, though old error is probably better), second results in incorrect regex used.
* | Merge branch 'master' into rename-executeZyX2017-04-09
|\|
| * test/check_cores(): Skip workspace-local temp dir. (#6483)Justin M. Keyes2017-04-09
| | | | | | | | | | | | | | | | Avoids this error: ./test/helpers.lua:27: cannot open ./Xtest-tmpdir/nvimfqH9dL: No such file or directory stack traceback: ./test/helpers.lua:27: in function 'glob' ./test/helpers.lua:195: in function 'check_cores' ./test/functional/helpers.lua:628: in function <./test/functional/helpers.lua:626>