Justin M. Keyes
ae409b5042
test/win: use cmd.exe for test
...
Can revert this after #8120 .
2018-03-18 17:15:06 +01:00
Justin M. Keyes
167898a517
test: jobstop() kills entire process tree
...
Test correctly fails before 8d90171f8b
.
ref #6530
2018-03-18 17:03:05 +01:00
Justin M. Keyes
a034d4b69d
API: nvim_get_proc()
...
TODO: "exepath" field (win32: QueryFullProcessImageName())
On unix-likes `ps` is used because the platform-specific APIs are
a nightmare. For reference, below is a (incomplete) attempt:
diff --git a/src/nvim/os/process.c b/src/nvim/os/process.c
index 09769925aca5..99afbbf290c1 100644
--- a/src/nvim/os/process.c
+++ b/src/nvim/os/process.c
@@ -208,3 +210,60 @@ int os_proc_children(int ppid, int **proc_list, size_t *proc_count)
return 0;
}
+/// Gets various properties of the process identified by `pid`.
+///
+/// @param pid Process to inspect.
+/// @return Map of process properties, empty on error.
+Dictionary os_proc_info(int pid)
+{
+ Dictionary pinfo = ARRAY_DICT_INIT;
+#ifdef WIN32
+
+#elif defined(__APPLE__)
+ char buf[PROC_PIDPATHINFO_MAXSIZE];
+ if (proc_pidpath(pid, buf, sizeof(buf))) {
+ name = getName(buf);
+ PUT(pinfo, "exepath", STRING_OBJ(cstr_to_string(buf)));
+ return name;
+ } else {
+ ILOG("proc_pidpath() failed for pid: %d", pid);
+ }
+#elif defined(BSD)
+# if defined(__FreeBSD__)
+# define KP_COMM(o) o.ki_comm
+# else
+# define KP_COMM(o) o.p_comm
+# endif
+ struct kinfo_proc *proc = kinfo_getproc(pid);
+ if (proc) {
+ PUT(pinfo, "name", cstr_to_string(KP_COMM(proc)));
+ xfree(proc);
+ } else {
+ ILOG("kinfo_getproc() failed for pid: %d", pid);
+ }
+
+#elif defined(__linux__)
+ char fname[256] = { 0 };
+ char buf[MAXPATHL];
+ snprintf(fname, sizeof(fname), "/proc/%d/comm", pid);
+ FILE *fp = fopen(fname, "r");
+ // FileDescriptor *f = file_open_new(&error, fname, kFileReadOnly, 0);
+ // ptrdiff_t file_read(FileDescriptor *const fp, char *const ret_buf,
+ // const size_t size)
+ if (fp == NULL) {
+ ILOG("fopen() of /proc/%d/comm failed", pid);
+ } else {
+ size_t n = fread(buf, sizeof(char), sizeof(buf) - 1, fp);
+ if (n == 0) {
+ WLOG("fread() of /proc/%d/comm failed", pid);
+ } else {
+ size_t end = MIN(sizeof(buf) - 1, n);
+ end = (end > 0 && buf[end - 1] == '\n') ? end - 1 : end;
+ buf[end] = '\0';
+ PUT(pinfo, "name", STRING_OBJ(cstr_to_string(buf)));
+ }
+ }
+ fclose(fp);
+#endif
+ return pinfo;
+}
2018-03-18 00:11:45 +01:00
Justin M. Keyes
dbad797edd
API: nvim_get_proc_children()
...
ref https://github.com/libuv/libuv/pull/836
2018-03-16 10:55:12 +01:00
Justin M. Keyes
de47515477
test: use luv.now() instead of os.time()
2018-03-16 10:55:12 +01:00
Marco Hinz
cca407b43e
DirChanged: support <buffer> ( #8140 )
2018-03-16 07:29:20 +01:00
Justin M. Keyes
496b0f944f
test: next_msg(): default timeout
to 10s
...
Infinite timeout results in hangs which waste time. If some test needs
longer than 10s to wait for a message, it should specify the timeout
explicitly.
2018-03-11 12:43:42 +01:00
Justin M. Keyes
fd4021387e
test: rename next_message() to next_msg()
2018-03-11 12:43:42 +01:00
Justin M. Keyes
2bf0869160
test: handle non-deterministic message cadence
2018-03-11 12:43:42 +01:00
Justin M. Keyes
9cefd83cc7
Merge #8084 'build/win: support MSVC'
2018-03-08 20:26:18 +01:00
b-r-o-c-k
c29a82c45f
build/msvc: Make shell-test fix only apply to MSCV
2018-03-06 20:38:10 -06:00
b-r-o-c-k
773f23e00d
build/msvc: Make shell-test work
...
MSVC doesn't have unistd.h or usleep() so it was replaced with the
Sleep() WinAPI function.
2018-03-04 17:44:23 -06:00
Björn Linse
cee9a8ce8a
message: don't output unprintable chars to screen
...
fixes #7586 #8070
2018-03-04 08:37:57 +01:00
geekodour
9f994bb699
api: nvim_list_uis #8004
...
ref #7438
closes #4842
2018-03-03 15:06:24 +01:00
James McCoy
158f8b7ce3
unittest: Ignore all _Float-prefixed types ( #8067 )
...
Previously, we ignored only _Float128. But glibc 2.27 added _Float32
and _Float32x. Rather than play whack-a-mole, ignore everything.
2018-02-25 10:23:12 +01:00
Matthieu Coudron
384a39479a
'fillchars': fix defaults logic; handle ambiwidth=double #7986
...
Update tests.
2018-02-23 00:48:35 +01:00
Björn Linse
c57d315963
Merge pull request #8031 from bfredl/gotintstatus
...
jobwait: return -2 on interrupt even with timeout
2018-02-20 15:15:06 +01:00
Björn Linse
04fdbfe17d
jobwait: return -2 on interrupt also with timeout
2018-02-20 12:32:23 +01:00
Jan Edmund Lazo
7fa69fb288
Resolve issues mentioned in PR review
2018-02-19 07:10:47 -05:00
Jan Edmund Lazo
795da343bb
test: win: emulate yes with for loop
2018-02-19 07:10:46 -05:00
Jan Edmund Lazo
07dfe0f5ea
test: win: enable ui/wildmode_spec.lua
2018-02-19 07:10:46 -05:00
Jan Edmund Lazo
8dcfd58e2c
test: win: enable termclose_spec.lua
2018-02-19 07:10:46 -05:00
Jan Edmund Lazo
d80bf3c656
test: enable ex_cmds/cd_spec.lua on Windows
2018-02-19 07:10:46 -05:00
Jan Edmund Lazo
df99ab461e
test: enable legacy/fixeol_spec in Windows
...
Try nvim's delete() for cross-platform file remove in Windows
2018-02-19 07:10:45 -05:00
Jan Edmund Lazo
55ce6bfffb
test: enable ex_cmds/write_spec.lua in Windows
2018-02-19 07:10:45 -05:00
Jan Edmund Lazo
6beb7ee77a
win: enable legacy test 051
2018-02-19 07:10:44 -05:00
Jan Edmund Lazo
f1e6828b7b
win: enable legacy test 059
2018-02-19 07:10:44 -05:00
Jan Edmund Lazo
2943056f75
win: enable legacy test 107
2018-02-19 07:10:44 -05:00
Jan Edmund Lazo
44dc8b4753
win: enable legacy test 093
2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
10fbae086a
win: enable legacy/arglist_spec.lua
2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
18a53b6502
win: enable legacy test 30
2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
c5a7f451ce
win: enable legacy/getcwd_spec.lua
2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
3c0cc9c2fb
win: enable legacy/wordcount_spec.lua
2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
e55de56a99
win: enable legacy/packadd_spec.lua
2018-02-19 07:10:42 -05:00
Jan Edmund Lazo
f4d82c1438
win: enable legacy test 011
2018-02-19 07:10:42 -05:00
Jan Edmund Lazo
4f65cd7c0a
win: enable legacy/delete_spec.lua
2018-02-19 07:10:42 -05:00
Jan Edmund Lazo
bde32edefe
win: enable legacy test 097
2018-02-19 07:10:42 -05:00
Jan Edmund Lazo
0fd899aa07
win: enable legacy test 025
2018-02-19 07:10:41 -05:00
Jan Edmund Lazo
3e19e18f4c
win: enable job tests that use jobstart only
...
- echo "" does not hang in powershell
- cmd.exe's echo command does not hang.
- job tests default to powershell (WHY?)
- wait 5 seconds for powershell to create an empty file
- powershell is slow
- cannot reliably validate the id returned by jobstart via jobpid, jobstop
- if using cmd.exe, waiting for a second should be enough
- remaining job tests are unreliable in Windows because any build can pass/fail
for same conditions without changes, especially if the error is in stderr
2018-02-19 07:10:41 -05:00
Shougo
00665d3c70
vim-patch:8.0.1493: completion items cannot be annotated ( #8003 )
...
Problem: Completion items cannot be annotated.
Solution: Add a "user_data" entry to the completion item. (Ben Jackson,
coses vim/vim#2608 , closes vim/vim#2508 )
9b56a57cda
2018-02-18 23:56:59 +01:00
Justin M. Keyes
7973847d02
test/util: remove eq_any()
...
It was added in the parent commit, but ended up not being used. And
I can't think of a case where it will be used: instead we would probably
want to generalize expect_msg_seq() if necessary.
2018-02-18 19:22:44 +01:00
Justin M. Keyes
e72ecdb7ca
test/util: expect_msg_seq()
...
job_spec.lua on AppVeyor (Windows) often fails like this:
FAILED ] C:/projects/neovim/test/functional\core\job_spec.lua @ 72: jobs changes to given `cwd` directory
C:/projects/neovim/test/functional\core\job_spec.lua:81: Expected objects to be the same.
Passed in:
(table) {
[1] = 'notification'
[2] = 'stdout'
*[3] = {
[1] = 0
*[2] = {
[1] = 'C:\projects\neovim\Xtest-tmpdir\nvimmSjq1S\0' } } }
Expected:
(table) {
[1] = 'notification'
[2] = 'stdout'
*[3] = {
[1] = 0
*[2] = {
[1] = 'C:\projects\neovim\Xtest-tmpdir\nvimmSjq1S\0'
*[2] = '' } } }
stack traceback:
Message chunking is non-deterministic, so we need to try different
variants.
2018-02-18 19:19:03 +01:00
Nimit Bhardwaj
e9134421ab
vim-patch-8.0.0649 and vim-patch-8.0.0650: autocmd open help 2 times
2018-02-17 00:02:16 +05:30
Björn Linse
77286915a8
Merge pull request #8008 from bfredl/arrayfree
...
ex_getln: clear cmdline_block after it's freed
2018-02-14 19:23:11 +01:00
Björn Linse
d9497053e8
ex_getln: clear cmdline_block after it's freed
2018-02-14 19:20:28 +01:00
Björn Linse
6e5cb0debd
ui: refactor ui options
2018-02-13 20:48:51 +01:00
Justin M. Keyes
0f1bc5ddce
test/python: less-noisy Python skip-message
...
Developer can use :checkhealth to get more details, don't need to blast
the details in the skip-message every time.
2018-02-12 13:24:48 +01:00
Justin M. Keyes
9bf9cc69c1
test/arglist_spec: update to Vim 8.0.0721 behavior
2018-02-11 19:03:28 +01:00
Justin M. Keyes
4b7f7be301
test: port Test_edit_08() to Lua test
...
Test_edit_08() depends on special-case handling in has_compl_option()
and redrawing() which are in Vim but are not wanted in Nvim. Using a Lua
test instead of depending on workarounds in the core to make the VimL
test work.
2018-02-11 19:03:27 +01:00
Justin M. Keyes
7d12597d29
vim-patch:8.0.0692: CTRL-G with 'incsearch' and ? goes in the wrong direction
...
Problem: Using CTRL-G with 'incsearch' and ? goes in the wrong direction.
(Ramel Eshed)
Solution: Adjust search_start. (Christian Brabandt)
da5116da45
2018-02-11 15:27:56 +01:00