diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-09-03 22:35:40 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-09-03 22:35:40 +0200 |
commit | dac1947bb366ef43cd6da95acc730554e76d8b84 (patch) | |
tree | d6959ff23939dfa6e68f8618694efb617c59f2e3 /src/testdir | |
parent | dda933d06c06c2792bd686d059f6ad19191ad30b (diff) | |
download | vim-git-dac1947bb366ef43cd6da95acc730554e76d8b84.tar.gz |
patch 7.4.2321v7.4.2321
Problem: When a test is commented out we forget about it.
Solution: Let a test throw an exception with "Skipped" and list skipped test
functions. (Christian Brabandt)
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/Makefile | 2 | ||||
-rw-r--r-- | src/testdir/README.txt | 5 | ||||
-rw-r--r-- | src/testdir/runtest.vim | 9 | ||||
-rw-r--r-- | src/testdir/test_popup.vim | 24 |
4 files changed, 28 insertions, 12 deletions
diff --git a/src/testdir/Makefile b/src/testdir/Makefile index 2153039d5..08f11cd1c 100644 --- a/src/testdir/Makefile +++ b/src/testdir/Makefile @@ -121,7 +121,7 @@ nolog: RUN_VIMTEST = VIMRUNTIME=$(SCRIPTSOURCE); export VIMRUNTIME; $(VALGRIND) $(VIMPROG) -f $(GUI_FLAG) -u unix.vim $(NO_PLUGIN) newtests: newtestssilent - @/bin/sh -c "if test -f messages && grep -q 'FAILED' messages; then cat messages && cat test.log; fi" + @/bin/sh -c "if test -f messages && grep -q 'SKIPPED\|FAILED' messages; then cat messages && if test -f test.log; then cat test.log; fi ; fi" newtestssilent: $(NEW_TESTS) diff --git a/src/testdir/README.txt b/src/testdir/README.txt index 3b2e101c8..640c61d1b 100644 --- a/src/testdir/README.txt +++ b/src/testdir/README.txt @@ -20,7 +20,7 @@ TO ADD A NEW STYLE TEST: 4) Also add an entry in src/Makefile. What you can use (see test_assert.vim for an example): -- Call assert_equal(), assert_true() and assert_false(). +- Call assert_equal(), assert_true(), assert_false(), etc. - Use try/catch to check for exceptions. - Use alloc_fail() to have memory allocation fail. This makes it possible to check memory allocation failures are handled gracefully. You need to @@ -29,6 +29,9 @@ What you can use (see test_assert.vim for an example): - Use disable_char_avail_for_testing(1) if char_avail() must return FALSE for a while. E.g. to trigger the CursorMovedI autocommand event. See test_cursor_func.vim for an example +- If the bug that is being tested isn't fixed yet, you can throw an exception + so that it's clear this still needs work. E.g.: + throw "Skipped: Bug with <c-e> and popupmenu not fixed yet" - See the start of runtest.vim for more help. diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim index 2660d93e8..19f1c5fb1 100644 --- a/src/testdir/runtest.vim +++ b/src/testdir/runtest.vim @@ -96,6 +96,9 @@ function RunTheTest(test) let s:done += 1 try exe 'call ' . a:test + catch /^\cskipped/ + call add(s:messages, ' Skipped') + call add(s:skipped, 'SKIPPED ' . a:test . ': ' . substitute(v:exception, '^\S*\s\+', '', '')) catch call add(v:errors, 'Caught exception in ' . a:test . ': ' . v:exception . ' @ ' . v:throwpoint) endtry @@ -127,6 +130,7 @@ let s:done = 0 let s:fail = 0 let s:errors = [] let s:messages = [] +let s:skipped = [] if expand('%') =~ 'test_viml.vim' " this test has intentional s:errors, don't use try/catch. source % @@ -200,7 +204,10 @@ if s:fail > 0 call extend(s:messages, s:errors) endif -" Append messages to "messages" +" Add SKIPPED messages +call extend(s:messages, s:skipped) + +" Append messages to the file "messages" split messages call append(line('$'), '') call append(line('$'), 'From ' . g:testname . ':') diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim index 34a2251ab..dd949334c 100644 --- a/src/testdir/test_popup.vim +++ b/src/testdir/test_popup.vim @@ -16,6 +16,21 @@ func! ListMonths() return '' endfunc +func! Test_popup_complete2() + " Insert match immediately, if there is only one match + " <c-e> Should select a character from the line below + " TODO: test disabled because the code change has been reverted. + throw "Skipped: Bug with <c-e> and popupmenu not fixed yet" + new + inoremap <f5> <c-r>=ListMonths()<cr> + call append(1, ["December2015"]) + :1 + call feedkeys("aD\<f5>\<C-E>\<C-E>\<C-E>\<C-E>\<enter>\<esc>", 'tx') + call assert_equal(["December2015", "", "December2015"], getline(1,3)) + %d + bw! +endfu + func! Test_popup_complete() new inoremap <f5> <c-r>=ListMonths()<cr> @@ -168,15 +183,6 @@ func! Test_popup_complete() call assert_equal(["December2015", "December2015", ""], getline(1,3)) %d - " Insert match immediately, if there is only one match - " <c-e> Should select a character from the line below - " TODO: test disabled because the code change has been reverted. - " call append(1, ["December2015"]) - " :1 - " call feedkeys("aD\<f5>\<C-E>\<C-E>\<C-E>\<C-E>\<enter>\<esc>", 'tx') - " call assert_equal(["December2015", "", "December2015"], getline(1,3)) - " %d - " use menuone for 'completeopt' " Since for the first <c-y> the menu is still shown, will only select " three letters from the line above |