aboutsummaryrefslogtreecommitdiff
path: root/test/functional/core/job_spec.lua
Commit message (Collapse)AuthorAge
* Add test case for 'null' stdin modeGregory Anders2021-08-26
|
* test(job_spec): Test handling of case-insensitively matching env varsJames McCoy2021-05-18
| | | | | Since Windows is case-insensitive, there should only be a single env var in visible in the resulting job. However, non-Windows should see both.
* api: fix use-after-free in nvim_chan_sendBjörn Linse2021-04-04
|
* test(job): Ensure job-specific env var overrides global env varJames McCoy2021-01-31
|
* Pass environment on to pty processes on WindowsJames McCoy2021-01-31
| | | | | | | | | | | | vim-patch:8.2.0239: MS-Windows: 'env' job option does not override existing vars Problem: MS-Windows: 'env' job option does not override existing environment variables. (Tim Pope) Solution: Set the environment variables later. (Yasuhiro Matsumoto, closes vim/vim#5485, closes vim/vim#5608) https://github.com/vim/vim/commit/355757aed6ae2ae5446882570d89f243e4805937 Co-authored-by: erw7 <erw7.github@gmail.com>
* Use dict_T to pass env vars to process spawning codeJames McCoy2021-01-31
| | | | Co-authored-by: Matthieu Coudron <mattator@gmail.com>
* A Mudholland Dr. RecastBjörn Linse2020-10-19
| | | | | The commit summary maybe does not make sense, but calling a function that does not wait on anything `wait()` makes even less sense.
* test: Fix failing test in case of special .bashrc (#12920)Omri Sarig2020-09-28
| | | | | | | | | | | | | | | | | | | The test of "replace environment" in the test module of `test/functional/core/job_spec.lua` failed in case the bashrc file of the user running the test has special actions in it (such actions were printing to the screen from inside this file, or changing the bash mode to be vi). In order to fix this problem, the test now sets the shell to be `/bin/sh` before running the command. Setting the shell to be `/bin/sh` causes the running shell to run without the configuration of the user, and so the test passes even in case of special .bashrc. This change was done only for platforms other than Windows since it is not relevant in windows. The fix was applied to the specific test, even though it is possible that related issues will arise in other tests. It seems like a big overhead to make the fix work on all the possible tests, and it does not worth this cost.
* Fix f_jobstop() failed loudlyBilly Su2020-01-22
| | | | | | The return value of jobstop() @return 1 for valid job id 0 for invalid id, including jobs have exited or stopped
* system(), jobstart(): raise error on non-executable #11234Daniel Hahler2019-12-24
| | | | | | | | | | * tv_to_argv: error when cmd is not executable Callers always assume that emsg was emitted: - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L12509 - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L17923 - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L18202 * test/functional/provider: display reason from missing_provider * provider#node#Detect: skip / handle non-existing node executable
* Add negative test for type of job's env optionJames McCoy2019-12-12
|
* test: new test for setting environmentMatthieu Coudron2019-12-11
|
* tests: fix non-controversial misuse of `pending` (#11247)Daniel Hahler2019-10-18
| | | Ref: https://github.com/neovim/neovim/pull/11184
* tests/ui: remove unnecessary screen:detach()Björn Linse2019-10-13
| | | | | | | | | | | | | It is perfectly fine and expected to detach from the screen just by the UI disconnecting from nvim or exiting nvim. Just keep detach() in screen_basic_spec, to get some coverage of the detach method itself. This avoids hang on failure in many situations (though one could argue that detach() should be "fast", or at least "as fast as resize", which works in press-return already). Never use detach() just to change the size of the screen, try_resize() method exists for that specifically.
* tests: fix system_spec when run with clipboard manager (#10956)Daniel Hahler2019-09-12
| | | | | | | | | * tests: move os_kill to functional helpers * tests: fix system_spec when run with clipboard manager Replaces "xclip" with a dedicated helper program. Fixes: https://github.com/neovim/neovim/issues/4900#issuecomment-501866842
* test: Eliminate expect_errJustin M. Keyes2019-09-06
| | | | Eliminate `expect_err` in favor of `pcall_err` + `eq` or `matches`.
* test: is_os() #10933Justin M. Keyes2019-09-04
| | | | | - Move os_name() up to "global helpers". - Rename it to is_os(). - Make it depend on uname() instead of a running Nvim instance.
* test: enable "exit event follows stdout, stderr" [ci skip] #10929Justin M. Keyes2019-09-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Update the test to work with changes since it was originally written. - Keep the test pending() because it still fails: Expected objects to be the same. Passed in: (table: 0x50ce9e38) { [1] = { [1] = 'notification' [2] = 'stderr' [3] = { [1] = 0 [2] = { [1] = '' } } } *[2] = { [1] = 'notification' [2] = 'stdout' *[3] = { [1] = 0 *[2] = { *[1] = '' } } } [3] = { [1] = 'notification' [2] = 'exit' [3] = { [1] = 0 [2] = 143 } } } Expected: (table: 0x50ce9870) { [1] = { [1] = 'notification' [2] = 'stderr' [3] = { [1] = 0 [2] = { [1] = '' } } } *[2] = { [1] = 'notification' [2] = 'stdout' *[3] = { [1] = 0 *[2] = { *[1] = 'abcdef' } } } [3] = { [1] = 'notification' [2] = 'stdout' [3] = { [1] = 0 [2] = { [1] = '' } } } }
* jobwait(): fix race if job exits before waiting on itJustin M. Keyes2019-09-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: If a job exits while waiting on another job, the on_exit handler is queued but f_jobwait() skips it. Solution: Always do process_wait(), so that handlers are run during f_jobwait(). fix #8302 Test case: $ BUSTED_ARGS="--repeat=2000 --no-keep-going" TEST_FILE=test/functional/core/job_spec.lua TEST_FILTER=waiting make functionaltest Failure example (macOS CI): FAILED test/functional/core/job_spec.lua: jobs jobwait will run callbacks while waiting test/functional/core/job_spec.lua:606: Expected objects to be the same. Passed in: (table: 0x1be77c80) { [1] = 'notification' [2] = 'wait' *[3] = { *[1] = 3 } } Expected: (table: 0x1be77d10) { [1] = 'notification' [2] = 'wait' *[3] = { *[1] = 4 } } stack traceback: test/functional/core/job_spec.lua:606: in function <test/functional/core/job_spec.lua:583
* test/job_spec: improve visibility of flaky testJustin M. Keyes2019-09-03
| | | | | | | | | | | | | | | | | | | | | | | Test sometimes fails on macOS CI: FAILED test/functional/core/job_spec.lua: jobs jobwait will run callbacks while waiting test/functional/core/job_spec.lua:606: Expected objects to be the same. Passed in: (table: 0x1be77c80) { [1] = 'notification' [2] = 'wait' *[3] = { *[1] = 3 } } Expected: (table: 0x1be77d10) { [1] = 'notification' [2] = 'wait' *[3] = { *[1] = 4 } } stack traceback: test/functional/core/job_spec.lua:606: in function <test/functional/core/job_spec.lua:583 Change the test to check if all jobs are starting, not only exiting.
* CI/OpenBSD: run functional testsEdd Barrett2019-09-01
| | | | | | | | | | | Adapt some tests for OpenBSD: - scrollback_spec: - seq(1) is not available on OpenBSD: we'd use jot(1). - Instead use a (hopefully) portable awk(1) snippet. - channels_spec - job_spec - tui_spec
* Change to output status on failureerw72019-08-16
|
* windows: ok(#children >= 3 and #chidlen <= 5)erw72019-08-16
| | | | | Depending on the version of Windows, conhost.exe may not be included in the child process.
* windows: ok(#children >= 4 and #children <= 5)Daniel Hahler2019-08-16
|
* tests: fix/improve "jobwait returns -1 when timed out" #10767Daniel Hahler2019-08-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was a longer timeout for Windows already, but unlike stated in 51d42917f it is not a worst-case, but gets waited for always. The test is only about "-1" on timeout, so reduce it to this. Fixes: 16:33:19,309 INFO - not ok 627 - jobs jobwait with timeout argument will return -1 if the wait timed out 16:33:19,309 INFO - # test/functional/core/job_spec.lua @ 707 16:33:19,309 INFO - # Failure message: test/functional/core/job_spec.lua:714: Expected objects to be the same. 16:33:19,309 INFO - # Passed in: 16:33:19,309 INFO - # (table: 0x0db1a3f0) { 16:33:19,309 INFO - # [1] = 'notification' 16:33:19,309 INFO - # [2] = 'wait' 16:33:19,309 INFO - # *[3] = { 16:33:19,309 INFO - # *[1] = { 16:33:19,309 INFO - # *[1] = -1 16:33:19,309 INFO - # [2] = -1 } } } 16:33:19,309 INFO - # Expected: 16:33:19,309 INFO - # (table: 0x0db1a480) { 16:33:19,309 INFO - # [1] = 'notification' 16:33:19,309 INFO - # [2] = 'wait' 16:33:19,309 INFO - # *[3] = { 16:33:19,309 INFO - # *[1] = { 16:33:19,309 INFO - # *[1] = 4 16:33:19,309 INFO - # [2] = -1 } } } 16:33:19,309 INFO - # stack traceback: 16:33:19,309 INFO - # test/functional/core/job_spec.lua:714: in function <test/functional/core/job_spec.lua:707>
* 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.
* test: isCI(): add "name" parameterJustin M. Keyes2019-08-05
|
* 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
* 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.
* channel: refactor events, prevent recursive invocation of eventsBjörn Linse2019-06-18
|
* jobstart(): Fix hang on non-executable cwd #9204Tommy Allen2018-11-07
| | | | | | | * os/fs.c: add os_isdir_executable() * eval.c: fix hang on job start caused by non-executable cwd option * channel.c: assert cwd is an executable directory * test: jobstart() produces error when using non-executable cwd
* win: test: SIGWINCH is noisy #7506Justin M. Keyes2018-11-01
|
* test/win: job_spec: increase jobwait() timeoutJustin M. Keyes2018-09-05
| | | | | | | powershell is slow, and this timeout is "worst case" so it doesn't make the tests more costly, only avoids a false-positive. close #8958
* tests: introduce screen:expect{...} formBjörn Linse2018-08-27
|
* channel: avoid references to non-rooted vimL list with outputBjörn Linse2018-05-17
| | | | | | | likely fixes #7768 #7913 If multiple internal stream callbacks were recieved before vimL callbacks got called, only invoke one vimL callback with all data.
* Merge #8120 'test: win: prefer cmd.exe'Justin M. Keyes2018-04-15
|\
| * test: win: enable jobpid() testsJan Edmund Lazo2018-03-26
| | | | | | | | | | | | Use ping to test job detach Use find.exe as an alternative to cat.exe Use nvim_get_proc to check pid
| * fixup: ping.exe works with cmd.exe pipeJan Edmund Lazo2018-03-26
| |
| * Revert "test/win: use cmd.exe for test"Jan Edmund Lazo2018-03-26
| | | | | | | | | | | | This reverts commit ae409b5042abdbec67305a063cf921ddffcce0c8. This PR (#8120) defaults to cmd.exe for job_spec.lua
| * test: win: use find.exe /v "" as alternative cat -Jan Edmund Lazo2018-03-26
| |
| * test: win: try stderr callback and slow outputJan Edmund Lazo2018-03-26
| |
| * test: win: use powershell for Start-Sleep onlyJan Edmund Lazo2018-03-26
| | | | | | | | | | | | cmd.exe (shell) is faster and more reliable than powershell (.NET frontend). It's best for short and basic tests that don't require non-trivial scripting. cmd.exe doesn't support sleep so use powershell's Start-Sleep as substitute.
* | channels: delay free so that libuv can cleanup handlesBjörn Linse2018-04-12
|/ | | | add test for a crash this caused
* test/win: use cmd.exe for testJustin M. Keyes2018-03-18
| | | | Can revert this after #8120.
* test: jobstop() kills entire process treeJustin M. Keyes2018-03-18
| | | | | Test correctly fails before 8d90171f8be6. ref #6530
* test: rename next_message() to next_msg()Justin M. Keyes2018-03-11
|
* test: handle non-deterministic message cadenceJustin M. Keyes2018-03-11
|
* Merge pull request #8031 from bfredl/gotintstatusBjörn Linse2018-02-20
|\ | | | | jobwait: return -2 on interrupt even with timeout
| * jobwait: return -2 on interrupt also with timeoutBjörn Linse2018-02-20
| |