Patch 8.1.0163
Problem:    Insufficient testing for Tcl.
Solution:   Add a few more tests. (Dominique Pelle, closes #3166)
Files:      src/testdir/test_tcl.vim


*** ../vim-8.1.0162/src/testdir/test_tcl.vim    Wed Jul  4 22:36:42 2018
--- src/testdir/test_tcl.vim    Sat Jul  7 22:39:36 2018
***************
*** 110,115 ****
--- 110,126 ----
    call assert_equal('+4', &cc)
    call assert_equal('+4', TclEval('::vim::option cc'))
  
+   " Test boolean option with 'toggle', 'on' and 'off' keywords.
+   call assert_equal('0', TclEval('::vim::option nu toggle'))
+   call assert_equal(1, &nu)
+   call assert_equal('1', TclEval('::vim::option nu toggle'))
+   call assert_equal(0, &nu)
+   call assert_equal('0', TclEval('::vim::option nu on'))
+   call assert_equal(1, &nu)
+   call assert_equal('1', TclEval('::vim::option nu off'))
+   call assert_equal(0, &nu)
+ 
+   call assert_fails('tcl ::vim::option nu x', 'expected integer but got "x"')
    call assert_fails('tcl ::vim::option xxx', 'unknown vimOption')
    call assert_fails('tcl ::vim::option',
          \           'wrong # args: should be "::vim::option vimOption 
?value?"')
***************
*** 124,129 ****
--- 135,141 ----
  
    call assert_fails('tcl ::vim::expr x y',
          \           'wrong # args: should be "::vim::expr vimExpr"')
+   call assert_fails('tcl ::vim::expr 1-', 'E15: Invalid expression: 1-')
  endfunc
  
  " Test ::vim::command
***************
*** 131,136 ****
--- 143,153 ----
    call assert_equal('hello world',
          \           TclEval('::vim::command {echo "hello world"}'))
  
+   " Check that if ::vim::command created a new Tcl interpreter, it is removed.
+   tcl set foo 123
+   call assert_equal('321', TclEval('::vim::command "tcl set foo 321"'))
+   call assert_equal('123', TclEval('set foo'))
+ 
    " With the -quiet option, the error should silently be ignored.
    call assert_equal('', TclEval('::vim::command -quiet xyz'))
  
***************
*** 142,147 ****
--- 159,166 ----
  
    " With the -quiet option, the error should silently be ignored.
    call assert_equal('', TclEval('::vim::command -quiet xyz'))
+ 
+   tcl unset foo
  endfunc
  
  " Test ::vim::window list
***************
*** 164,175 ****
  
  " Test output messages
  func Test_output()
!   call assert_fails('tcl puts vimerr "an error"', 'an error')
!   tcl puts vimout "a message"
!   tcl puts "another message"
    let messages = split(execute('message'), "\n")
!   call assert_equal('a message', messages[-2])
!   call assert_equal('another message', messages[-1])
  
    call assert_fails('tcl puts',
          \           'wrong # args: should be "puts ?-nonewline? ?channelId? 
string"')
--- 183,197 ----
  
  " Test output messages
  func Test_output()
!   call assert_fails('tcl puts vimerr "error #1"', 'error #1')
!   call assert_fails('tcl puts stderr "error #2"', 'error #2')
!   tcl puts vimout "message #1"
!   tcl puts stdout "message #2"
!   tcl puts "message #3"
    let messages = split(execute('message'), "\n")
!   call assert_equal('message #3', messages[-1])
!   call assert_equal('message #2', messages[-2])
!   call assert_equal('message #1', messages[-3])
  
    call assert_fails('tcl puts',
          \           'wrong # args: should be "puts ?-nonewline? ?channelId? 
string"')
***************
*** 447,459 ****
    call setline(1, ['line1', 'line2', 'line3', 'line4', 'line5'])
    tcl $::vim::current(buffer) set 2 a
    call assert_equal(['line1', 'a', 'line3', 'line4', 'line5'], getline(1, 
'$'))
    tcl $::vim::current(buffer) set 3 4 b
    call assert_equal(['line1', 'a', 'b', 'line5'], getline(1, '$'))
    tcl $::vim::current(buffer) set 4 3 c
    call assert_equal(['line1', 'a', 'c'], getline(1, '$'))
  
    call assert_fails('tcl $::vim::current(buffer) set 0 "x"', 'line number out 
of range')
!   call assert_fails('tcl $::vim::current(buffer) set 5 "x"', 'line number out 
of range')
  
    call assert_fails('tcl $::vim::current(buffer) set', 'wrong # args:')
    bwipe!
--- 469,489 ----
    call setline(1, ['line1', 'line2', 'line3', 'line4', 'line5'])
    tcl $::vim::current(buffer) set 2 a
    call assert_equal(['line1', 'a', 'line3', 'line4', 'line5'], getline(1, 
'$'))
+ 
+   " Test with fewer replacing lines than replaced lines: lines get deleted.
    tcl $::vim::current(buffer) set 3 4 b
    call assert_equal(['line1', 'a', 'b', 'line5'], getline(1, '$'))
    tcl $::vim::current(buffer) set 4 3 c
    call assert_equal(['line1', 'a', 'c'], getline(1, '$'))
  
+   " Test with more replacing lines than replaced lines: lines get added.
+   tcl $::vim::current(buffer) set 2 3 {x y z}
+   call assert_equal(['line1', 'x', 'y', 'z'], getline(1, '$'))
+   tcl $::vim::current(buffer) set 3 2 {X Y Z}
+   call assert_equal(['line1', 'X', 'Y', 'Z', 'z'], getline(1, '$'))
+ 
    call assert_fails('tcl $::vim::current(buffer) set 0 "x"', 'line number out 
of range')
!   call assert_fails('tcl $::vim::current(buffer) set 6 "x"', 'line number out 
of range')
  
    call assert_fails('tcl $::vim::current(buffer) set', 'wrong # args:')
    bwipe!
***************
*** 622,628 ****
    call delete('Xtcl_file')
  endfunc
  
! " Test exiting current Tcl interprepter and re-creating one.
  func Test_tcl_exit()
    tcl set foo "foo"
    call assert_fails('tcl exit 3', 'E572: exit code 3')
--- 652,658 ----
    call delete('Xtcl_file')
  endfunc
  
! " Test exiting current Tcl interpreter and re-creating one.
  func Test_tcl_exit()
    tcl set foo "foo"
    call assert_fails('tcl exit 3', 'E572: exit code 3')
*** ../vim-8.1.0162/src/version.c       Sat Jul  7 22:26:49 2018
--- src/version.c       Sat Jul  7 22:39:52 2018
***************
*** 791,792 ****
--- 791,794 ----
  {   /* Add new patch number below this line */
+ /**/
+     163,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
200. You really believe in the concept of a "paperless" office.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui