aboutsummaryrefslogtreecommitdiff
path: root/test/functional/helpers.lua
Commit message (Collapse)AuthorAge
...
* test: Fix nondeterminism in tests with notificationsThiago de Arruda2014-11-10
| | | | | | | | Tests which spin the event loop and stop it in a notification handler have a chance of re-entering the event loop due to the `vim_eval` call in the `request()` helper(assuming the request call is what triggered the notification). Since this will cause an error to be thrown by the lua client, don't send the extra `vim_eval` request when the loop has been stopped.
* test: Pass --show-possibly-lost=no to valgrind in helpers.luaThiago de Arruda2014-11-07
| | | | | This command-line flag will suppress all warnings about interior pointers, which are used in hashtab.c.
* test: Improve test environment setup and error handling/reportingThiago de Arruda2014-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | During test setup, we used to call a vimscript function(BeforeEachTest) that attempted to restore Nvim to it's initial state as much as possible in order to provide a clean environment for running new tests. This approach has proven to be unreliable, as some tests leave state that can affect other tests, eventually causing failures that are difficult to debug. This commit changes the 'clear' function so it will restart Nvim every time it is called, which is a slower, but more reliable solution that will simplify spotting bugs in the future. Some other improvements/fixes were also performed: - Whenever an error is detected in a handler passed to "run()", the event loop will be stopped and the error will be propagated to the main thread. - Errors and the "cleanup()" function will always send a quit command to the current Nvim instance. This should prevent memory starvation when running tests under valgrind(where each Nvim instance can consume a lot of memory). - Fixed a wrong assertion in server_requests_spec.lua. Previously the failure was undetected in a notification handler. - Fixed some tests to expect fully clean registers. The deleted cleanup function used to put an empty string in every register, but that resulted in a extra line being added.
* legacy tests: improvements to functional helpers.luaRainer Borene2014-11-04
| | | | | | - Clean vim registers and functions before each test - Add eval workaround to the request helper method - Export dedent method
* test: Small fixes and improvements to functional helpers.luaThiago de Arruda2014-10-28
| | | | | | | | - Move the cleanup function definition into `restart()` so restart can be selectively used as a hook - Improve error handling: Before this, errors while running the event loop would cause busted to get stuck. Now the error is properly raised by stopping the event loop first.
* test: Use lua to perform sanity API checksThiago de Arruda2014-10-16
| | | | | | | Sanity API checks made by the python-client in the api-python travis target were converted to lua and will now live in this repository. This will simplify performing breaking changes to the API as it won't be necessary to send parallel PRs the python-client.
* test: Remove run-functional-tests.pyThiago de Arruda2014-10-16
| | | | | | Now that the lua client is available, python/lupa are no longer necessary to run the functional tests. The helper functions previously defined in run-functional-tests.py were adapted to test/functional/helpers.lua.
* test: Add 'eval' functional helperThiago de Arruda2014-10-01
| | | | | The eval helper transforms vimL expressions into lua tables, it's useful for verifying function output.
* test: Replace vroom by lua/busted for functional testsThiago de Arruda2014-09-30
The 'lupa' python package provides a simple way to seamless integrate lua and python code. This commit replaces vroom by a python script that exposes the 'neovim' package to a lua state, and invokes busted to run functional tests. This is a temporary solution that will enable writing functional tests using lua/bused while a lua client library is not available. The reason for dropping vroom is flexibility: Lua/busted has a nice DSL-style syntax while also providing the customization power of a full programming language. Another reason is to use a single framework for unit/functional tests. Two other changes were performed in this commit: - Instead of "gcc-unittest/gcc-ia32", the travis builds for gcc are now identified by "gcc/gcc-32". They will run unit/functional tests for both 64 and 32 bits. - Old integration tests(in src/nvim/testdir) are now ran by the 'oldtest' target