Justin M. Keyes
9706664b88
system('foo &', 'bar'): Show error, don't crash.
...
Closes #3529
Closes #5241
In Vim,
:echo system('cat - &', 'foo')
works because for both system() and :! Vim writes input to a temp file and uses
shell syntax to redirect the file to the backgrounded `cat` (get_cmd_output()
.. make_filter_cmd()).
In Nvim,
:echo system('cat - &', 'foo')
fails because we write the input directly via pipes (shell.c:do_os_system()),
but (per POSIX[1]) backgrounded process input stream is redirected from
/dev/null (unless overridden by shell redirection; supported only by some shells
[2]), so our writes are ignored, the process exits quickly, and if we are
writing data larger than the buffer size we'll see EPIPE.
This still works:
:%w !tee > foo1358.txt &
but this does not:
:%w !tee foo1358.txt &
though it *should* (why doesn't it?) because we still do the temp file dance
in do_bang() .. do_filter().
[1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_03_02
[2] http://unix.stackexchange.com/a/71218
2016-10-19 01:39:05 +02:00
Justin M. Keyes
97caabc49a
test: execute_spec: Adjust screen assertion.
...
The previous form was passing because it happens immediately before this form;
but on a very fast(?) server the screen check might miss that form. It's also
not really want we want to assert anyways.
2016-10-15 22:16:48 +02:00
Björn Linse
719dae2e01
events: allow event processing in getchar()
...
this is consistent with vim, and is necessary for plugins that implement
their own input modes using "getchar()" and still want to do async
event processing.
2016-10-15 09:50:59 +02:00
Justin M. Keyes
dc6cc4787c
api: Establish API naming convention. ( #5344 )
...
old name: new name:
--------------------------------------------------
nvim_name_to_color nvim_get_color_by_name
nvim_get_current_buffer nvim_get_current_buf
nvim_get_current_window nvim_get_current_win
nvim_get_buffers nvim_list_bufs
nvim_get_tabpages nvim_list_tabpages
nvim_get_windows nvim_list_wins
nvim_set_current_buffer nvim_set_current_buf
nvim_set_current_window nvim_set_current_win
nvim_change_directory nvim_set_current_dir
nvim_tabpage_get_window nvim_tabpage_get_win
nvim_tabpage_get_windows nvim_tabpage_list_wins
nvim_win_get_buffer nvim_win_get_buf
nvim_report_error nvim_err_writeln
Helped-by: Björn Linse <bjorn.linse@gmail.com>
Helped-by: ZyX <kp-pav@yandex.ru>
Helped-by: James McCoy <jamessan@jamessan.com>
2016-09-17 06:30:36 +02:00
Björn Linse
98a08c3e5a
api: add tests for calling the api from vimscript
2016-08-31 21:57:06 +02:00
Rui Abreu Ferreira
39c628d031
Mark some functional tests as pending in Windows
2016-08-26 08:21:41 +01:00
Björn Linse
f282b8ecac
tests: don't ignore highlights in various tests
2016-08-14 21:53:02 +02:00
Björn Linse
0a51d26b33
timers: do not crash after processing events in the handler
2016-08-10 11:22:28 +02:00
Justin M. Keyes
aa2c439940
eval.c: rename capture() to execute() ( #5132 )
2016-07-31 13:23:29 -04:00
Björn Linse
5c754a2d22
timers: make repeat=0 work one-shot (consistent with vim)
2016-06-29 18:57:18 +02:00
Björn Linse
2c39e0b03f
timers: make timers work with zero timeout
2016-06-29 18:57:18 +02:00
Björn Linse
e8a8342132
test: fix command_count_spec
...
The test hit wait_return if x or .x.swp exists in the project root directory.
2016-06-23 16:54:19 +02:00
Justin M. Keyes
8a4e5b4bc2
Merge #4697 'capture() function'.
2016-06-20 00:55:41 -04:00
ZyX
ff470bb853
functests: Check logs in lua code
...
It is otherwise impossible to determine which test failed sanitizer/valgrind
check. test/functional/helpers.lua module return was changed so that tests which
do not provide after_each function to get new check will automatically fail.
2016-06-10 21:50:49 +03:00
Shougo Matsushita
41c0dfd545
Port capture() function
...
https://groups.google.com/forum/#!msg/vim_dev/H3Z3ChSUh_4/beZs6KzYdBsJ
2016-05-27 10:33:44 +09:00
Björn Linse
5cc87d4dab
cmdline: Redraw the cmdline after processing events
...
vim-patch:7.4.1603
TODO(bfredl): if we allow events in HITRETURN and ASKMORE states,
we need to add the necessary redraws as well.
2016-05-24 22:11:37 +02:00
Björn Linse
61e8adb25e
eval: implement timers. vim-patch: 7.4.1578, 7.4.1831
...
For the moment, timers are triggered during sleep,
but not in wait-for-input modes, like press-RETURN or f_getchar()
2016-05-24 22:08:56 +02:00
KillTheMule
65b7499872
vim-patch:cb00f03
...
Add missing test file.
cb00f03933
Converted to a lua test. Change the tolerance of the test to avoid false
positives on travis.
2016-05-08 20:15:07 +02:00
KillTheMule
360d0513d1
Satisfy testlint.
...
For that, make luatest ignore the preload.lua files.
2016-04-28 19:30:17 +02:00
ZyX
a64114eba0
functests: Make json_functions_spec use new NIL where appropriate
2016-04-18 02:48:20 +03:00
ZyX
bda0165514
eval/encode: Make sure that encoder can encode NULL variables
...
Adds two undocumented v: variables: _null_list and _null_dict because I do not
know a reproducible way to get such lists (though I think I heard about this)
and dictionaries (do not remember hearing about them). NULL strings are obtained
using $XXX_UNEXISTENT_VAR_XXX.
Fixes crash in json_encode($XXX_UNEXISTENT_VAR_XXX). Other added tests worked
fine before this commit.
2016-04-18 02:48:20 +03:00
ZyX
3e435df42c
functests: Replace \xXX escapes with \DDD in lua code
2016-04-18 02:48:20 +03:00
ZyX
fd92e648ac
eval/encode: Dump FF character correctly
2016-04-18 02:48:20 +03:00
ZyX
9af400f979
eval: Treat [] and [""] as any other empty string
2016-04-18 02:48:20 +03:00
ZyX
af7ff808c7
eval: Fix overflow in error message in f_json_decode
2016-04-18 02:48:20 +03:00
ZyX
4f8b686435
documentation,functests: State that UTF-8-only support is intentional
2016-04-18 02:48:20 +03:00
ZyX
c129f6cfaf
eval/decode: Accept \r
as space character
2016-04-18 02:48:20 +03:00
ZyX
515fea1ef0
eval/decode: Reject even more numbers
...
Rejects leading zeroes and numbers like 1.e+5 (decimal dot with missing number
with signed exponent).
2016-04-18 02:48:20 +03:00
ZyX
9c543f2e24
eval/decode: Reject more numbers, accept 1e5
2016-04-18 02:48:20 +03:00
ZyX
032ac502ff
eval/decode: Do not loose high surrogates followed by high surrogates
2016-04-18 02:48:20 +03:00
ZyX
eb806c9620
eval/decode: Make sure that error messages do not cause overflow
2016-04-18 02:48:20 +03:00
ZyX
224d7df630
eval/decode: Make sure that blank input does not crash Neovim
2016-04-18 02:48:20 +03:00
ZyX
394830631f
eval/decode: Make sure that U+00C3 is parsed correctly
2016-04-18 02:48:20 +03:00
ZyX
b725f6b428
functests: Make sure that json functions are tested with C messages
2016-04-18 02:48:20 +03:00
ZyX
4a29995fe7
eval/decode: Rename brackets in error messages
...
U+007D is officially RIGHT CURLY BRACKET.
U+005D is officially RIGHT SQUARE BRACKET.
2016-04-18 02:48:20 +03:00
ZyX
942e0b338c
encode: Handle incomplete surrogates like \uSURR\uOTHR
properly
2016-04-18 02:48:20 +03:00
ZyX
406562ac6d
encode: Fail to dump NaN and infinity
...
Thanks to vim/vim#654
2016-04-18 02:48:20 +03:00
ZyX
2f67786796
eval: Rename json* functions to json_*
2016-04-18 02:48:20 +03:00
ZyX
f0bd4a1494
eval/encode: Fix invalid UTF-8 strings handling:
...
1. Do not allow reading past buffer end when creating error messages.
2. Fix surrogate pairs range, avoid magic constants.
2016-04-18 02:47:13 +03:00
ZyX
569e404622
eval/encode: Fix non-utf-8 &encoding handling, add tests
2016-04-18 02:46:34 +03:00
ZyX
0aa3e7b7ce
eval: Port parts of 7.4.1267 that are not already present
2016-04-18 02:46:34 +03:00
ZyX
b7cb8f0597
eval: Make assert_true and assert_false accept v:true and v:false
2016-04-18 02:45:49 +03:00
ZyX
6167ce6df2
eval: Remove v:none
...
To get v:none back just rever this commit. This will not make json*() functions
compatible with Vim though.
2016-04-18 02:45:49 +03:00
ZyX
e303ea8a19
eval/decode: Add support for special maps
...
Special dictionaries representing map are created when encountering duplicate
key or when key is empty or contains NUL.
Also checks that values are separated by a comma/colon properly.
2016-04-18 02:45:49 +03:00
ZyX
2c378fdfaf
eval/decode: Parse strings with NUL to special dictionaries
2016-04-18 02:45:49 +03:00
ZyX
5814e29cdb
eval/decode: Fix surrogate pairs processing
2016-04-18 02:45:49 +03:00
ZyX
ea82270d30
eval/decode: Fail on control and invalid unicode characters
2016-04-18 02:45:49 +03:00
ZyX
cddd7d47c3
eval/decode: Make msgpackparse() function use new v: vars
2016-04-18 02:45:49 +03:00
ZyX
e213ba1506
eval: Add jsondecode() function
2016-04-18 02:45:49 +03:00
ZyX
f5c35ba109
functests/msgpack: Test dumping special nil and bool dicts
2016-04-18 02:44:03 +03:00
ZyX
d70a322c40
eval: Add special variables v:false, v:null, v:none
2016-04-18 02:44:03 +03:00
ZyX
18903bd9b8
eval: Add special variable type
2016-04-18 02:44:03 +03:00
ZyX
68e58444b4
eval: Add jsonencode() function
...
Ref #3471
2016-04-18 02:44:03 +03:00
ZyX
c3efad5398
functests(msgpack): Fix location of one of the tests
2016-04-18 02:44:03 +03:00
ZyX
f21cb425fb
functests(msgpack): Fix test names
2016-04-18 02:44:03 +03:00
Justin M. Keyes
54188cddde
test: move server_spec.lua
...
Old layout was too granular, we do not need a server/ folder.
2016-04-15 02:23:27 -04:00
Björn Linse
7ab9ff88e6
eval: add v:event, which will contain data events want to propagate to their receivers.
...
Add helper functions dict_clear and dict_set_keys_readonly.
2016-02-29 16:06:41 +01:00
ZyX
610b48c5b0
functests: Add string() function tests
2016-02-02 00:54:00 +03:00
ZyX
b2ea083eeb
eval: Return different values when dividing by zero
...
Fixes #3263
2016-02-02 00:54:00 +03:00
Justin M. Keyes
542c79f20d
test: printf_spec: fix missing setup
...
before_each(clear) is required to init the test harness for single-test
runs, and also to ensure a known environment for each test.
2016-01-21 01:34:56 -05:00
Jason Schulz
7ad3f077dc
Add support for binary numbers
2016-01-15 18:21:06 -08:00
ZyX
c6f6033482
eval: Do not use msgpack#string for error messages
2016-01-07 00:54:58 +03:00
ZyX
efaf76e623
functests: Update tests
2016-01-07 00:54:57 +03:00
Marco Hinz
d9fbc1865b
test/functional: clean up according to luacheck (part 2)
2015-11-23 13:57:21 +01:00
Björn Linse
57d3a2a52f
api: represent api type String as msgpack type STR. closes #1250
2015-10-08 20:18:46 +02:00
ZyX
6da3fadd9f
eval/msgpackdump(): Use copyID for protecting against recursive input
...
Should be faster then O(depth) iteration, but removes const qualifiers.
2015-09-30 10:09:21 +03:00
ZyX
c6102f9a9f
functests: Test how msgpack\* functions behave with invalid input
2015-09-19 01:54:43 +03:00
ZyX
e881a20dfb
functests: Split msgpack\* function tests into three groups:
...
- Tests that use both functions.
- Tests that use msgpackparse().
- Tests that use msgpackdump().
2015-09-19 01:54:43 +03:00
John Szakmeister
f9778052af
tests: fix the glob tests when building under a long path #3214
2015-08-21 23:58:39 -04:00
Justin M. Keyes
5a19585865
test: cover msgpackparse() regression
2015-08-05 19:08:06 -04:00
Justin M. Keyes
9f350e615c
Merge pull request #3034 from ZyX-I/msgpack-eval
...
msgpack viml functions for dump/restore
2015-08-03 00:24:10 -04:00
ZyX
030f360312
functests: Use eval subdirectory in place of viml
2015-08-02 22:19:58 +03:00
Justin M. Keyes
efa059c5a4
test: call scandir_next_with_dots() more than once
...
Also cosmetic reduction.
2015-08-01 23:33:54 -04:00
Felipe Morales
ea551044ea
Add the . and .. entries to glob()
...
os_scandir() and os_scandir_next() skip over those, because of the
unverlying libuv funcitons behaviour.
Fixes #2954
2015-08-01 23:16:17 -04:00