diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2016-12-07 23:55:18 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-07 23:55:18 +0100 |
commit | ff99cbfc0273bb9f714c32a62ec02b888c196a2e (patch) | |
tree | bbfb82885565dc382721716f3d550a259852ad28 | |
parent | 8da23cb919e55825bc89f0ebfcebcc07374d9d18 (diff) | |
parent | 933c873cae64d3840bb0539b51a983a240eeff28 (diff) | |
download | rneovim-ff99cbfc0273bb9f714c32a62ec02b888c196a2e.tar.gz rneovim-ff99cbfc0273bb9f714c32a62ec02b888c196a2e.tar.bz2 rneovim-ff99cbfc0273bb9f714c32a62ec02b888c196a2e.zip |
Merge #5488 from justinmk/test-fix-mouse-drag
test: Disable unreliable test on travis+ASAN_UBSAN
-rw-r--r-- | test/functional/core/job_spec.lua | 5 | ||||
-rw-r--r-- | test/functional/fixtures/tty-test.c | 24 | ||||
-rw-r--r-- | test/functional/helpers.lua | 14 | ||||
-rw-r--r-- | test/functional/legacy/061_undo_tree_spec.lua | 10 | ||||
-rw-r--r-- | test/functional/ui/mouse_spec.lua | 10 |
5 files changed, 42 insertions, 21 deletions
diff --git a/test/functional/core/job_spec.lua b/test/functional/core/job_spec.lua index 58594db8ac..9d24ba62db 100644 --- a/test/functional/core/job_spec.lua +++ b/test/functional/core/job_spec.lua @@ -481,10 +481,9 @@ describe('jobs', function() eq('rows: 40, cols: 10', next_chunk()) end) - it('calling jobclose()', function() - -- this should send SIGHUP to the process + it('jobclose() sends SIGHUP', function() nvim('command', 'call jobclose(j)') - eq({'notification', 'exit', {0, 1}}, next_msg()) + eq({'notification', 'exit', {0, 42}}, next_msg()) end) end) end) diff --git a/test/functional/fixtures/tty-test.c b/test/functional/fixtures/tty-test.c index ca905ce65e..778e7f3cd3 100644 --- a/test/functional/fixtures/tty-test.c +++ b/test/functional/fixtures/tty-test.c @@ -32,11 +32,21 @@ static void walk_cb(uv_handle_t *handle, void *arg) { } #ifndef WIN32 -static void sigwinch_handler(int signum) +static void sig_handler(int signum) { - int width, height; - uv_tty_get_winsize(&tty, &width, &height); - fprintf(stderr, "rows: %d, cols: %d\n", height, width); + switch(signum) { + case SIGWINCH: { + int width, height; + uv_tty_get_winsize(&tty, &width, &height); + fprintf(stderr, "rows: %d, cols: %d\n", height, width); + return; + } + case SIGHUP: + exit(42); // arbitrary exit code to test against + return; + default: + return; + } } #endif @@ -141,7 +151,8 @@ int main(int argc, char **argv) struct sigaction sa; sigemptyset(&sa.sa_mask); sa.sa_flags = 0; - sa.sa_handler = sigwinch_handler; + sa.sa_handler = sig_handler; + sigaction(SIGHUP, &sa, NULL); sigaction(SIGWINCH, &sa, NULL); // uv_signal_t sigwinch_watcher; // uv_signal_init(uv_default_loop(), &sigwinch_watcher); @@ -150,5 +161,8 @@ int main(int argc, char **argv) #endif uv_run(uv_default_loop(), UV_RUN_DEFAULT); + // XXX: Without this the SIGHUP handler is skipped on some systems. + sleep(100); + return 0; } diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index ff62b4de86..d1ab02f361 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -243,6 +243,19 @@ local function connect(file_or_address) return Session.new(stream) end +-- Calls fn() until it returns without error, up to `max` times. +local function retry(fn, max) + local retries = max and (max - 1) or 2 + for _ = 1, retries do + local success = pcall(fn) + if success then + return + end + end + -- pcall() is not used for the final attempt so failure can bubble up. + fn() +end + local function clear(...) local args = {unpack(nvim_argv)} local new_args @@ -530,6 +543,7 @@ return function(after_each) prepend_argv = prepend_argv, clear = clear, connect = connect, + retry = retry, spawn = spawn, dedent = dedent, source = source, diff --git a/test/functional/legacy/061_undo_tree_spec.lua b/test/functional/legacy/061_undo_tree_spec.lua index 9bf69ccba1..2069204938 100644 --- a/test/functional/legacy/061_undo_tree_spec.lua +++ b/test/functional/legacy/061_undo_tree_spec.lua @@ -98,15 +98,7 @@ describe('undo tree:', function() expect_line('123456abc') end - -- Retry up to 3 times. pcall() is _not_ used for the final attempt, so - -- that failure messages can bubble up. - for _ = 1, 2 do - local success = pcall(test_earlier_later) - if success then - return - end - end - test_earlier_later() + helpers.retry(test_earlier_later) end) it('file-write specifications', function() diff --git a/test/functional/ui/mouse_spec.lua b/test/functional/ui/mouse_spec.lua index 13bfe9e23f..b729b0db08 100644 --- a/test/functional/ui/mouse_spec.lua +++ b/test/functional/ui/mouse_spec.lua @@ -153,8 +153,9 @@ describe('Mouse input', function() end) it('in tabline to the left moves tab left', function() - if os.getenv("TRAVIS") and helpers.os_name() == "osx" then - pending("[Fails on Travis macOS. #4874]", function() end) + if os.getenv("TRAVIS") and (helpers.os_name() == "osx" + or os.getenv("CLANG_SANITIZER") == "ASAN_UBSAN") then + pending("[Fails on Travis macOS, ASAN_UBSAN. #4874]", function() end) return end @@ -256,8 +257,9 @@ describe('Mouse input', function() end) it('out of tabline to the left moves tab left', function() - if os.getenv("TRAVIS") and helpers.os_name() == "osx" then - pending("[Fails on Travis macOS. #4874]", function() end) + if os.getenv("TRAVIS") and (helpers.os_name() == "osx" + or os.getenv("CLANG_SANITIZER") == "ASAN_UBSAN") then + pending("[Fails on Travis macOS, ASAN_UBSAN. #4874]", function() end) return end |