aboutsummaryrefslogtreecommitdiff
path: root/test/functional
Commit message (Collapse)AuthorAge
* exists(): return false for empty env var #10657Daniel Hahler2019-08-09
| | | | | Fixes https://github.com/neovim/neovim/issues/3266 close #10657
* channels: reflect exit due to signals in exit status code (#10573)Daniel Hahler2019-08-09
| | | | | Uses `128 + term_signal` in case of exit due to a signal. Fixes https://github.com/neovim/neovim/issues/10571.
* tests/functional: expect_msg_seq: use load_adjust (#10727)Daniel Hahler2019-08-09
| | | | | | | | | | | | | | | | | | | Regardless of the comment "Big timeout for ASAN/valgrind" it would use 10s by default already. This changes it to use `load_adjust`, which itself is only computed on CI now, and outside of any tests - since it has side effects when being used the first time! The failure seen on AppVeyor: [ RUN ] jobs can get the pid value using getpid: ERR test\functional\helpers.lua:167: ============================================================================== got 0 messages (ignored 0), expected 1 stack traceback: test\functional\helpers.lua:167: in function 'expect_msg_seq' test/functional\core\job_spec.lua:288: in function <test/functional\core\job_spec.lua:281> Log: https://ci.appveyor.com/project/neovim/neovim/builds/26537324/job/y1io66fbx399q7h6?fullLog=true#L6554
* test: Minimize shada/helpers.lua #10728Justin M. Keyes2019-08-09
|
* lua: minimal UTF-16 support needed for LSPBjörn Linse2019-08-08
|
* tests: use module pattern with test/functional/helpers.lua (#10724)Daniel Hahler2019-08-08
|
* tests: output_spec: use shell-test REP_NODELAY (#10726)Daniel Hahler2019-08-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix flaky "shell command :! throttles shell-command output greater than ~10KB:": [ RUN ] shell command :! throttles shell-command output greater than ~10KB: warning: Screen changes were received after the expected state. This indicates indeterminism in the test. Try adding screen:expect(...) (or wait()) between asynchronous (feed(), nvim_input()) and synchronous API calls. - Use screen:redraw_debug() to investigate; it may find relevant intermediate states that should be added to the test to make it more robust. - If the purpose of the test is to assert state after some user input sent with feed(), adding screen:expect() before the feed() will help to ensure the input is sent when Nvim is in a predictable state. This is preferable to wait(), for being closer to real user interaction. - wait() can trigger redraws and consequently generate more indeterminism. Try removing wait(). ERR test/functional/ui/screen.lua:579: Failed to match any screen lines. Expected (anywhere): " %." Actual: |XXXXXXXXXX 591 | |XXXXXXXXXX 592 | |XXXXXXXXXX 593 | |XXXXXXXXXX 594 | | | | | |{3:-- TERMINAL --} | stack traceback: test/functional/ui/screen.lua:579: in function '_wait' test/functional/ui/screen.lua:367: in function 'expect' test/functional/ui/output_spec.lua:63: in function <test/functional/ui/output_spec.lua:53> Log: https://travis-ci.org/neovim/neovim/jobs/569082705#L5355 (gcc-functionaltest-lua)
* Fix lualint: remove unused varDaniel Hahler2019-08-07
|
* tests: more cleanup of plugin/shada_specDaniel Hahler2019-08-07
| | | | | Ref: https://github.com/neovim/neovim/pull/10701/commits/330a6713#r311005754 Closes https://github.com/neovim/neovim/pull/10710.
* lua: support getting UTF-32 and UTF-16 sizes of replaced textBjörn Linse2019-08-06
|
* lua: add {old_byte_size} to on_lines buffer change eventBjörn Linse2019-08-06
|
* Merge #10701 from justinmk/test-fixesJustin M. Keyes2019-08-06
|\ | | | | test: Eliminate plugin/helpers.lua
| * test: Eliminate plugin/helpers.luaJustin M. Keyes2019-08-05
| |
* | f_environ: cleanup/refactorDaniel Hahler2019-08-06
|/ | | | | - use os_getenvname_at_index / os_getenv - f_getenv: empty (*p == NUL) is not null (undefined)
* Merge pull request #10690 from bfredl/lua_printBjörn Linse2019-08-05
|\ | | | | lua: laundry list (crashes and additions)
| * lua: add vim.in_fast_event() to check if we are in a luv callbackBjörn Linse2019-08-05
| |
| * lua: do not crash on syntax error in debug.debug()Björn Linse2019-08-05
| |
| * lua: immediate-callback safe print()Björn Linse2019-08-05
| |
* | test/man_spec: remove plugin_helpers.reset()Justin M. Keyes2019-08-05
| | | | | | | | | | | | | | | | | | The call to plugin_helpers.reset() is redundant with the clear() call above it. Probably just a copy-paste mistake. Avoids exit_event race #8813. Helped-by: Björn Linse <bjorn.linse@gmail.com>
* | test: isCI(): add "name" parameterJustin M. Keyes2019-08-05
| |
* | tests: fix flaky "TermClose … fast-exiting terminal job stops"Justin M. Keyes2019-08-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This extra retry() was removed (at my suggestion) in 5b94a2977a22, but it is probably needed: jobwait(…, timeout=0) could return while channel_process_exit_cb() is still queued (so TermClose event didn't fire yet). 20:46:21,288 INFO - not ok 547 - TermClose event triggers when fast-exiting terminal job stops 20:46:21,288 INFO - # test/functional/autocmd/termclose_spec.lua @ 20 20:46:21,288 INFO - # Failure message: ./test/functional/helpers.lua:98: Vim:E121: Undefined variable: g:test_termclose 20:46:21,288 INFO - # stack traceback: 20:46:21,288 INFO - # ./test/functional/helpers.lua:98: in function 'eval' 20:46:21,288 INFO - # test/functional/autocmd/termclose_spec.lua:25: in function <test/functional/autocmd/termclose_spec.lua:20>
* | :doautocmd : Never show "No matching autocommands" #10689Justin M. Keyes2019-08-05
|/ | | | | | | | The message is useless, it doesn't even mention the event name. vim_dev discussion: https://groups.google.com/forum/#!msg/vim_dev/RTbq58TMq9w/Xr4rSoUTCgAJ ref: https://github.com/vim/vim/issues/4300
* provider: check #Call() if g:loaded_xx_provider=2Justin M. Keyes2019-08-04
|
* provider: skip non-provider has() feature-namesJustin M. Keyes2019-08-04
| | | | | We don't want to retry autoload sourcing (slow) for every random has() query that finds it way to eval_call_provider().
* provider: g:loaded_xx_provider=2 means "enabled and working"Justin M. Keyes2019-08-04
| | | | | Value of 1 cannot be used, because users might set that in their vimrc to _disable_ a provider, which would confuse :checkhealth and has().
* provider: decide status by g:loaded_xx_providerJustin M. Keyes2019-08-04
|
* provider: let providers decide their statusRui Abreu Ferreira2019-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | Instead of deciding provider status in eval_has_provider, move the decision to the provider Vim scripts. Previously, provider loading worked as follows: 1. eval_has_provider() verified provider availability by searching for the provider#providername#Call function and cached this verificaion as a static variable for some providers 2. providers short-circuited on loading to prevent the definition of the Call function (with the exception of the node provider that did not) This commit changes the expected interface between nvim and its providers to facilitate provider reloading, by splitting the verification of the provider from the availability of the Call function. eval_has_provider() now checks for a provider#providername#enabled variable. It is up to the provider script to set this to 0 or 1 accordingly. eval_call_provider() remains unchanged. All providers hosting a Call function were updated to respect this. The clipboard provider now has a Reload function to reload the provider.
* process_stop: uv: do not close stdin first/explicitly #10584Daniel Hahler2019-08-01
| | | | | | | | | | - process_stop: do not close stdin explicitly. The "close stdin" step was from aa9cb48, before we fixed/reworked the SIGTERM timing logic. So it's probably outdated / no longer needed. - win: jobstop: exit_code 15 GetExitCodeProcess appears to return the used signal. https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getexitcodeprocess ref #10573
* vim-patch:8.1.0572: stopping a job does not work properly on OpenBSDDaniel Hahler2019-07-30
| | | | | | | | | | | | Problem: Stopping a job does not work properly on OpenBSD. Solution: Do not use getpgid() to check the process group of the job processs ID, always pass the negative process ID to kill(). (George Koehler, closes vim/vim#3656) https://github.com/vim/vim/commit/76ab4fd61901090e6af3451ca6c5ca0fc370571f Ref: https://github.com/neovim/neovim/issues/9704 Ref: https://github.com/neovim/neovim/issues/10182#issuecomment-514450069 Closes https://github.com/neovim/neovim/pull/10660
* vim-patch:8.1.1049: when user tries to exit with CTRL-C message is confusingJan Edmund Lazo2019-07-28
| | | | | | | | | | | | | | | | | | Problem: When user tries to exit with CTRL-C message is confusing. Solution: Only mention ":qa!" when there is a changed buffer. (closes vim/vim#4163) https://github.com/vim/vim/commit/a84a3dd6635fcd2e07f510cba6a999585dcc381a vim-patch:8.1.1052: test for CTRL-C message sometimes fails Problem: test for CTRL-C message sometimes fails Solution: Make sure there are no changed buffers. https://github.com/vim/vim/commit/553e5a5c568e7d175b65b0472cd6d9843b25f4c8 vim-patch:8.1.1053: warning for missing return statement Problem: Warning for missing return statement. (Dominique Pelle) Solution: Add return statement. https://github.com/vim/vim/commit/d6c3f1fa2b5e1dd7dc87cf608d72b84ad696b58f
* TextYankPost: spurious/too-early dispatch during delete #10392Jit2019-07-29
| | | | | | Problem: delete-with-register dispatches TextYankPost before updating yank registers Solution: Add flag to op_yank(). Fixes #10225
* vim-patch:8.1.1759: no mode char for terminal mapping from maparg()notomo2019-07-28
| | | | | | Problem: No mode char for terminal mapping from maparg(). Solution: Check for TERMINAL mode. (closes vim/vim#4735) https://github.com/vim/vim/commit/14371ed69778107654e39268d0d90982e53ad6e0
* API: Context: save/restoreAbdelhakeem2019-07-27
|
* eval: context: add ctx-family functionsAbdelhakeem2019-07-27
|
* API: ContextAbdelhakeem2019-07-27
|
* tests: win: fix "cat" with PowerShellerw72019-07-26
| | | | Ref: https://github.com/neovim/neovim/pull/10580#issuecomment-514884092
* tests: use "cat" also on WindowsDaniel Hahler2019-07-26
| | | | | | | Fixes https://github.com/neovim/neovim/issues/10574. Keeps 'can be called recursively' pending for now, see https://github.com/neovim/neovim/pull/10580#issuecomment-515295571.
* os/fs: introduce os_fopen()Justin M. Keyes2019-07-25
| | | | | | | Windows: Using fopen() directly may need UTF-16 filepath conversion. To achieve that, os_fopen() goes through os_open(). fix #10586
* Merge #10596 'vim-patch:8.1.{899,903,905,907,908,910,913,1746}'Justin M. Keyes2019-07-25
|\ | | | | | | | | close #9930 close #10051
| * Checks for overflow when parsing string to intGabriel2019-07-24
|/
* tests: AppVeyor: fix test/functional/ex_cmds/arg_spec.lua (#10598)Daniel Hahler2019-07-24
| | | | | | | | | | | | | | | | | | | | For unknown reasons it does not have the trailing space in `:args` output there anymore: [ FAILED ] test/functional\ex_cmds\arg_spec.lua @ 11: :argument does not restart :terminal buffer test/functional\ex_cmds\arg_spec.lua:25: Expected objects to be the same. Passed in: (string) ' [term://.//4552:C:\Windows\system32\cmd.exe]' Expected: (string) ' [term://.//4552:C:\Windows\system32\cmd.exe] ' stack traceback: test/functional\ex_cmds\arg_spec.lua:25: in function <test/functional\ex_cmds\arg_spec.lua:11> The test is not about that though, and this can be made less strict by using `trim()`. The new test in `test_arglist.vim` for no trailing newline is OK, and contains trailing spaces. So this is likely due to the length of it exceeding the column width already.
* vim-patch:8.0.1738: ":args" output is hard to readDaniel Hahler2019-07-24
| | | | | | | | | | | | | | | Problem: ":args" output is hard to read. Solution: Make columns with the names if the output is more than one line. https://github.com/vim/vim/commit/5d69da462f584a3aefb3427b127334bf9af3a4b0 vim-patch:8.0.1740: warning for signed-unsigned incompatibility Problem: Warning for signed-unsigned incompatibility. Solution: Change type from "char *" to "char_u *". (John Marriott) https://github.com/vim/vim/commit/405dadb63ea2b7aa4c8c659807506a35a8a9504c Removes ported legacy test that was re-added later. Ref: https://github.com/neovim/neovim/pull/10147#issuecomment-512609513
* tests: fix/improve Screen:expect_unchanged (#10577)Daniel Hahler2019-07-24
| | | | | | Do not sleep before collecting initial state. Ref: https://github.com/neovim/neovim/pull/10550#issuecomment-513670205
* tests: re-enable "tab drag in tabline to the left moves tab left" (#10588)Daniel Hahler2019-07-24
| | | Ref: https://github.com/neovim/neovim/pull/4874
* shell-test: fix REP for count larger than uint8_t (#10581)Daniel Hahler2019-07-22
|
* tests: make TERM=interix test pending (#10576)Daniel Hahler2019-07-22
| | | | Ref: https://github.com/neovim/neovim/issues/10179 Ref: https://github.com/neovim/neovim/pull/9494
* win: jobstart(), system(): $PATHEXT-resolve exeJustin M. Keyes2019-07-21
| | | | | | | | | | | | Windows: In order for jobstart(['foo']), system(['foo']) to find "foo.cmd", we must replace "foo" with "foo.cmd" before sending `argv` to process_spawn(). Rationale: jobstart([…]), system([…]) "executable" semantics should be consistent with the VimL executable() function. fix #9569 related: #10554
* test: shell-test.c: "REP" command: flush, wait 1ms #10552Justin M. Keyes2019-07-20
| | | | | | Typically most shell output is the result of non-trivial work, so it would not blast stdout instantaneously. To more closely simulate that typical scenario, change `shell-test REP` to wait 1 millisecond between iterations.
* screen.lua: always print keyword-args snapshotJustin M. Keyes2019-07-20
|
* screen.lua: expect_unchanged(), get_snapshot()Justin M. Keyes2019-07-20
| | | | | | | | | | | | | | Factor `get_snapshot()` out of `print_snapshot()`, so that callers can get a table (for use with `expect()`) instead of the string form. Try to use this to fix indeterminism in `searchhl_spec.lua`. - Since the screen state is collected by `screen:expect_unchanged()`, we don't need a deterministic initial state (which would then be hardcoded into the test). This allows us to check "did anything change in the last N ms?" rather than "did anything change compared to a hardcoded screen-state?" - This may end up fruitless, because `expect_unchanged()` depends on timing to wait for an initial "current state".