From f4d326cf101bd83716a281c9802d6995f92ce0b5 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sat, 10 Dec 2016 04:43:34 +0100 Subject: test: ctrl_c_spec - Improve test reliability by only checking for a line with the string we are interested in ("Interrupt"). - Try to avoid OOM by loading an existing big file instead of looping to create one. --- test/functional/ex_cmds/ctrl_c_spec.lua | 56 +++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 test/functional/ex_cmds/ctrl_c_spec.lua (limited to 'test/functional/ex_cmds/ctrl_c_spec.lua') diff --git a/test/functional/ex_cmds/ctrl_c_spec.lua b/test/functional/ex_cmds/ctrl_c_spec.lua new file mode 100644 index 0000000000..5867bd6ee0 --- /dev/null +++ b/test/functional/ex_cmds/ctrl_c_spec.lua @@ -0,0 +1,56 @@ +local helpers = require('test.functional.helpers')(after_each) +local Screen = require('test.functional.ui.screen') +local clear, feed, source = helpers.clear, helpers.feed, helpers.source +local execute = helpers.execute + +if helpers.pending_win32(pending) then return end + +describe("CTRL-C (mapped)", function() + before_each(function() + clear() + end) + + it("interrupts :global", function() + source([[ + set nomore nohlsearch undolevels=-1 + nnoremap + ]]) + + execute("silent edit! test/functional/fixtures/bigfile.txt") + local screen = Screen.new(52, 6) + screen:attach() + screen:set_default_attr_ids({ + [0] = {foreground = Screen.colors.White, + background = Screen.colors.Red}, + [1] = {bold = true, + foreground = Screen.colors.SeaGreen} + }) + + screen:expect([[ + ^0000;;Cc;0;BN;;;;;N;NULL;;;; | + 0001;;Cc;0;BN;;;;;N;START OF HEADING;;;; | + 0002;;Cc;0;BN;;;;;N;START OF TEXT;;;; | + 0003;;Cc;0;BN;;;;;N;END OF TEXT;;;; | + 0004;;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;;| + | + ]]) + + local function test_ctrl_c(ms) + feed(":global/^/p") + helpers.sleep(ms) + feed("") + screen:expect([[Interrupt]], nil, nil, nil, true) + end + + -- The test is time-sensitive. Try different sleep values. + local ms_values = {1, 10, 100} + for i, ms in ipairs(ms_values) do + if i < #ms_values then + local status, _ = pcall(test_ctrl_c, ms) + if status then break end + else -- Call the last attempt directly. + test_ctrl_c(ms) + end + end + end) +end) -- cgit From e03b43bd07bd359076c7332f1cb874ebc5308951 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Wed, 4 Jan 2017 04:10:38 +0100 Subject: test: skip_fragile(), TEST_SKIP_FRAGILE Let build systems define TEST_SKIP_FRAGILE to skip tests that are known to be resource-intensive (unreliable on slow systems). References https://github.com/neovim/neovim/pull/5488#issuecomment-265622113 --- test/functional/ex_cmds/ctrl_c_spec.lua | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'test/functional/ex_cmds/ctrl_c_spec.lua') diff --git a/test/functional/ex_cmds/ctrl_c_spec.lua b/test/functional/ex_cmds/ctrl_c_spec.lua index 5867bd6ee0..b0acb02000 100644 --- a/test/functional/ex_cmds/ctrl_c_spec.lua +++ b/test/functional/ex_cmds/ctrl_c_spec.lua @@ -11,6 +11,12 @@ describe("CTRL-C (mapped)", function() end) it("interrupts :global", function() + if helpers.skip_fragile(pending, + (os.getenv("TRAVIS") and os.getenv("CLANG_SANITIZER") == "ASAN_UBSAN")) + then + return + end + source([[ set nomore nohlsearch undolevels=-1 nnoremap -- cgit