| Commit message (Collapse) | Author | Age |
| |
|
| |
ref #15440
|
| | |
|
| |
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
| |
Co-authored-by: Matthieu Coudron <mattator@gmail.com>
|
| |
|
|
|
| |
The commit summary maybe does not make sense, but calling a function
that does not wait on anything `wait()` makes even less sense.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
The return value of jobstop()
@return 1 for valid job id
0 for invalid id, including jobs have exited or stopped
|
| |
|
|
|
|
|
|
|
|
| |
* 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
|
| | |
|
| | |
|
| |
|
| |
Ref: https://github.com/neovim/neovim/pull/11184
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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: 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
|
| |
|
|
| |
Eliminate `expect_err` in favor of `pcall_err` + `eq` or `matches`.
|
| |
|
|
|
| |
- Move os_name() up to "global helpers".
- Rename it to is_os().
- Make it depend on uname() instead of a running Nvim instance.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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] = '' } } } }
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
|
| |
Depending on the version of Windows, conhost.exe may not be included in
the child process.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
| |
Uses `128 + term_signal` in case of exit due to a signal.
Fixes https://github.com/neovim/neovim/issues/10571.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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.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
|
| | |
|
| |
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
|
|
|
| |
likely fixes #7768 #7913
If multiple internal stream callbacks were recieved before vimL
callbacks got called, only invoke one vimL callback with all data.
|
| |\ |
|
| | |
| |
| |
| |
| |
| | |
Use ping to test job detach
Use find.exe as an alternative to cat.exe
Use nvim_get_proc to check pid
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
This reverts commit ae409b5042abdbec67305a063cf921ddffcce0c8.
This PR (#8120) defaults to cmd.exe for job_spec.lua
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
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.
|
| |/
|
|
| |
add test for a crash this caused
|
| |
|
|
| |
Can revert this after #8120.
|
| |
|
|
|
| |
Test correctly fails before 8d90171f8be6.
ref #6530
|
| | |
|
| | |
|
| |\
| |
| | |
jobwait: return -2 on interrupt even with timeout
|