]> granicus.if.org Git - vim/commitdiff
patch 7.4.2321 v7.4.2321
authorBram Moolenaar <Bram@vim.org>
Sat, 3 Sep 2016 20:35:40 +0000 (22:35 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 3 Sep 2016 20:35:40 +0000 (22:35 +0200)
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)

src/testdir/Makefile
src/testdir/README.txt
src/testdir/runtest.vim
src/testdir/test_popup.vim
src/version.c

index 2153039d567fe7be05766762aa96da064d695396..08f11cd1c5dbf991dc132ba34380024e37d58e85 100644 (file)
@@ -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)
 
index 3b2e101c8f8e57cc63608b45a6a83133c928180d..640c61d1bd283162a91bb39062a81f43f9bd0b9e 100644 (file)
@@ -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.
 
 
index 2660d93e8ac2c083bb92544ce50e139cf37e1d30..19f1c5fb1011b10ba621fe43e344237cd300b556 100644 (file)
@@ -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 . ':')
index 34a2251ab4ee14792a6456824d2c7745d20714a3..dd949334c8db8d67a374a638fffa5deefe22b6cd 100644 (file)
@@ -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
index de2d859ce8075dc3049f1c101c125a53b1f26b2c..5628a9dce3b451bf6f5f434c98c557d9330c19d7 100644 (file)
@@ -763,6 +763,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2321,
 /**/
     2320,
 /**/