Justin M. Keyes
3f3de9b1a9
Merge #8183 'build/msvc: Fix functional tests'
...
MSBuild still returns a non-zero exit code because it detects the word "error" in the stdout which is caused by some of the test names such as api/buf {get,set,del}_line get_line : out-of-bounds is an error.
CMake mailing list thread:
https://cmake.org/pipermail/cmake-developers/2015-October/026775.html
There isn't any good solution for it, so I modified the build script to detect the error message printed by RunTests.cmake.
2018-03-27 23:02:27 +02:00
Nimit Bhardwaj
8d5a46e77b
TUI: implement "standout" attribute #8081
...
closes #8054
2018-03-27 04:38:19 +02:00
ZyX
920c582320
test/helpers: Support booleans
2018-03-27 01:35:21 +03:00
ZyX
17ea0f2214
functests: Fix existing functional tests
2018-03-27 01:33:59 +03:00
b-r-o-c-k
ab6051331c
build/msvc: Fix check for cksum on Windows
2018-03-26 10:54:44 -05:00
Jan Edmund Lazo
51f5cfc16e
test: win: enable jobpid() tests
...
Use ping to test job detach
Use find.exe as an alternative to cat.exe
Use nvim_get_proc to check pid
2018-03-26 01:45:42 -04:00
Jan Edmund Lazo
ad6d577314
fixup: ping.exe works with cmd.exe pipe
2018-03-26 01:45:41 -04:00
Jan Edmund Lazo
e6ee06ee11
Revert "test/win: use cmd.exe for test"
...
This reverts commit ae409b5042 .
This PR (#8120 ) defaults to cmd.exe for job_spec.lua
2018-03-26 01:45:41 -04:00
Jan Edmund Lazo
03e69a5d9c
test: win: use find.exe /v "" as alternative cat -
2018-03-26 01:45:40 -04:00
Jan Edmund Lazo
3bd555f1e6
test: win: try stderr callback and slow output
2018-03-26 01:45:38 -04:00
Jan Edmund Lazo
cf4fbb6f04
test: win: use powershell for Start-Sleep only
...
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.
2018-03-26 01:45:37 -04:00
ZyX
79b4b6fc86
*: Make sure that !did_throw implies !current_exception
...
Fixes #7876
2018-03-25 14:50:48 +03:00
Nimit Bhardwaj
8d64a2fb1d
test: lua test for vim-patch:8.0.0184
...
2b7bc567b9
2018-03-24 23:06:09 +01:00
Jan Edmund Lazo
131aad953c
win: defaults: 'shellcmdflag', 'shellxquote' #7343
...
closes #7698
Wrapping a command in double-quotes allows cmd.exe to safely dequote the
entire command as if the user entered the entire command in an
interactive prompt. This reduces the need to escape nested and uneven
double quotes.
The `/s` flag of cmd.exe makes the behaviour more reliable:
:set shellcmdflag=/s\ /c
Before this patch, cmd.exe cannot use cygwin echo.exe (as opposed to
cmd.exe `echo` builtin) even if it is wrapped in double quotes.
Example:
:: internal echo
> cmd /s /c " echo foo\:bar" "
foo\:bar"
:: cygwin echo.exe
> cmd /s /c " "echo" foo\:bar" "
foo:bar
2018-03-24 22:05:53 +01:00
Justin M. Keyes
6a7c904648
Merge #4419 'implement <Cmd> key'
2018-03-24 17:45:48 +01:00
Justin M. Keyes
7ae4144208
refactor/rename: path_try_shorten_fname()
2018-03-24 14:17:40 +01:00
Justin M. Keyes
998a16c926
refactor/rename: path_is_absolute()
2018-03-24 14:17:40 +01:00
Justin M. Keyes
189c5abeba
provider/RPC: apply_autocmds_group(): fix double-free
...
During provider dispatch, eval_call_provider() saves global
state--including pointers, such as `autocmd_fname`--into
`provider_caller_scope` which is later restored by f_rpcrequest().
But `autocmd_fname` is special-cased in eval_vars(), for performance
(see Vim patch 7.2.021; this is also the singular purpose of the
`autocmd_fname_full` global. Yay!)
If eval_vars() frees `autocmd_fname` then its provider-RPC-scoped alias
becomes a problem.
Solution: Don't free autocmd_fname in eval_vars(), just copy into it.
closes #5245
closes #5617
Reference
------------------------------------------------------------------------
Vim patch 7.2.021
f6dad43c98
Problem: When executing autocommands getting the full file name may be
slow. (David Kotchan)
Solution: Postpone calling FullName_save() until autocmd_fname is used.
vim_dev discussion (2008): "Problem with CursorMoved AutoCommand when
Editing Files on a Remote WIndows Share"
https://groups.google.com/d/msg/vim_dev/kj95weZa_eE/GTgj4aq5sIgJ
2018-03-24 11:01:24 +01:00
Björn Linse
d407a48665
getchar: implement <Cmd> key to invoke command in any mode
2018-03-23 14:01:49 +01:00
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