Patch 7.4.2227
Problem:    Tab page tests are old style.
Solution:   Change into new style tests. (Hirohito Higashi)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/test62.in,
            src/testdir/test62.ok, src/testdir/test_alot.vim,
            src/testdir/test_tabpage.vim


*** ../vim-7.4.2226/src/Makefile        2016-08-17 21:31:54.437870436 +0200
--- src/Makefile        2016-08-18 21:29:59.462348172 +0200
***************
*** 2041,2047 ****
        test30 test31 test32 test33 test34 test36 test37 test38 test39 \
        test40 test41 test42 test43 test44 test45 test46 test48 test49 \
        test50 test51 test52 test53 test54 test55 test56 test57 test58 test59 \
!       test60 test62 test64 test65 test66 test67 test68 test69 \
        test70 test71 test72 test73 test74 test75 test76 test77 test78 test79 \
        test80 test81 test82 test83 test84 test85 test86 test87 test88 test89 \
        test90 test91 test92 test93 test94 test95 test97 test98 test99 \
--- 2041,2047 ----
        test30 test31 test32 test33 test34 test36 test37 test38 test39 \
        test40 test41 test42 test43 test44 test45 test46 test48 test49 \
        test50 test51 test52 test53 test54 test55 test56 test57 test58 test59 \
!       test60 test64 test65 test66 test67 test68 test69 \
        test70 test71 test72 test73 test74 test75 test76 test77 test78 test79 \
        test80 test81 test82 test83 test84 test85 test86 test87 test88 test89 \
        test90 test91 test92 test93 test94 test95 test97 test98 test99 \
***************
*** 2122,2127 ****
--- 2122,2128 ----
        test_syn_attr \
        test_syntax \
        test_tabline \
+       test_tabpage \
        test_tagjump \
        test_textobjects \
        test_timers \
*** ../vim-7.4.2226/src/testdir/Make_all.mak    2016-08-14 15:31:53.353671912 
+0200
--- src/testdir/Make_all.mak    2016-08-18 21:29:59.462348172 +0200
***************
*** 50,56 ****
        test56.out \
        test57.out \
        test60.out \
-       test62.out \
        test64.out \
        test65.out \
        test66.out \
--- 50,55 ----
*** ../vim-7.4.2226/src/testdir/test62.in       2015-04-21 18:08:21.838719097 
+0200
--- src/testdir/test62.in       1970-01-01 01:00:00.000000000 +0100
***************
*** 1,205 ****
- Tests for tab pages
- 
- STARTTEST
- :so small.vim
- :lang C
- :" Simple test for opening and closing a tab page
- :tabnew
- :let nr = tabpagenr()
- :q
- :call append(line('$'), 'tab page ' . nr)
- :unlet nr
- :"
- :" Open three tab pages and use ":tabdo"
- :0tabnew
- :1tabnew
- :$tabnew
- :tabdo call append(line('$'), 'this is tab page ' . tabpagenr())
- :tabclose! 2
- :tabrewind
- :let line1 = getline('$')
- :undo
- :q
- :tablast
- :let line2 = getline('$')
- :q!
- :call append(line('$'), line1)
- :call append(line('$'), line2)
- :unlet line1 line2
- :"
- :" Test for settabvar() and gettabvar() functions. Open a new tab page and 
- :" set 3 variables to a number, string and a list. Verify that the variables
- :" are correctly set.
- :tabnew
- :tabfirst
- :call settabvar(2, 'val_num', 100)
- :call settabvar(2, 'val_str', 'SetTabVar test')
- :call settabvar(2, 'val_list', ['red', 'blue', 'green'])
- :"
- :let test_status = 'gettabvar: fail'
- :if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar 
test' && gettabvar(2, 'val_list') == ['red', 'blue', 'green']
- :    let test_status = 'gettabvar: pass'
- :endif
- :call append(line('$'), test_status)
- :"
- :tabnext 2
- :let test_status = 'settabvar: fail'
- :if t:val_num == 100 && t:val_str == 'SetTabVar test'  && t:val_list == 
['red', 'blue', 'green']
- :   let test_status = 'settabvar: pass'
- :endif
- :tabclose
- :call append(line('$'), test_status)
- :"
- :if has('gui') || has('clientserver')
- :" Test for ":tab drop exist-file" to keep current window.
- :sp test1
- :tab drop test1
- :let test_status = 'tab drop 1: fail'
- :if tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1
- :    let test_status = 'tab drop 1: pass'
- :endif
- :close
- :call append(line('$'), test_status)
- :"
- :"
- :" Test for ":tab drop new-file" to keep current window of tabpage 1.
- :split
- :tab drop newfile
- :let test_status = 'tab drop 2: fail'
- :if tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1
- :    let test_status = 'tab drop 2: pass'
- :endif
- :tabclose
- :q
- :call append(line('$'), test_status)
- :"
- :"
- :" Test for ":tab drop multi-opend-file" to keep current tabpage and window.
- :new test1
- :tabnew
- :new test1
- :tab drop test1
- :let test_status = 'tab drop 3: fail'
- :if tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1
- :    let test_status = 'tab drop 3: pass'
- :endif
- :tabclose
- :q
- :call append(line('$'), test_status)
- :else
- :" :drop not supported
- :call append(line('$'), 'tab drop 1: pass')
- :call append(line('$'), 'tab drop 2: pass')
- :call append(line('$'), 'tab drop 3: pass')
- :endif
- :"
- :"
- :for i in range(9) | tabnew | endfor
- 1gt
- :$put =tabpagenr()
- :tabmove 5
- :$put =tabpagenr()
- :.tabmove
- :$put =tabpagenr()
- :tabmove -
- :$put =tabpagenr()
- :tabmove +
- :$put =tabpagenr()
- :tabmove -2
- :$put =tabpagenr()
- :tabmove +4
- :$put =tabpagenr()
- :tabmove
- :$put =tabpagenr()
- :tabmove -20
- :$put =tabpagenr()
- :tabmove +20
- :$put =tabpagenr()
- :0tabmove
- :$put =tabpagenr()
- :$tabmove
- :$put =tabpagenr()
- :tabmove 0
- :$put =tabpagenr()
- :tabmove $
- :$put =tabpagenr()
- :3tabmove
- :$put =tabpagenr()
- :7tabmove 5
- :$put =tabpagenr()
- :let a='No error caught.'
- :try
- :tabmove foo
- :catch E474
- :let a='E474 caught.'
- :endtry
- :$put =a
- :"
- :" Test autocommands
- :tabonly!
- :let g:r=[]
- :command -nargs=1 -bar C :call add(g:r, '=== ' . <q-args> . ' ===')|<args>
- :function Test()
-     let hasau=has('autocmd')
-     if hasau
-         autocmd TabEnter * :call add(g:r, 'TabEnter')
-         autocmd WinEnter * :call add(g:r, 'WinEnter')
-         autocmd BufEnter * :call add(g:r, 'BufEnter')
-         autocmd TabLeave * :call add(g:r, 'TabLeave')
-         autocmd WinLeave * :call add(g:r, 'WinLeave')
-         autocmd BufLeave * :call add(g:r, 'BufLeave')
-     endif
-     let t:a='a'
-     C tab split
-     if !hasau
-         let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter']
-     endif
-     let t:a='b'
-     C tabnew
-     if !hasau
-         let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 
'BufEnter']
-     endif
-     let t:a='c'
-     call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, 
"a")')))
-     C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
-     call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, 
"a")')))
-     let w:a='a'
-     C vsplit
-     if !hasau
-         let g:r+=['WinLeave', 'WinEnter']
-     endif
-     let w:a='a'
-     let tabn=tabpagenr()
-     let winr=range(1, winnr('$'))
-     C tabnext 1
-     if !hasau
-         let g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 
'BufEnter']
-     endif
-     call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
-     C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
-     call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
-     if hasau
-         augroup TabDestructive
-             autocmd TabEnter * :C tabnext 2 | C tabclose 3
-         augroup END
-         C tabnext 3
-         let g:r+=[tabpagenr().'/'.tabpagenr('$')]
-         autocmd! TabDestructive TabEnter
-         C tabnew
-         C tabnext 1
-         autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3
-         C tabnext 3
-         let g:r+=[tabpagenr().'/'.tabpagenr('$')]
-     else
-         let g:r+=["=== tabnext 3 
===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 
===","=== tabclose 3 ===","2/2","=== tabnew 
===","WinLeave","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== 
tabnext 1 
===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== 
tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== 
tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== 
tabnext 2 ===","=== tabclose 3 ===","BufEnter","=== tabclose 3 ===","2/2",]
-     endif
- endfunction
- :call Test()
- :$ put =g:r
- :"
- :"
- :/^Results/,$w! test.out
- :qa!
- ENDTEST
- 
- Results:
--- 0 ----
*** ../vim-7.4.2226/src/testdir/test62.ok       2015-04-21 18:08:21.838719097 
+0200
--- src/testdir/test62.ok       1970-01-01 01:00:00.000000000 +0100
***************
*** 1,95 ****
- Results:
- tab page 2
- this is tab page 3
- this is tab page 1
- this is tab page 4
- gettabvar: pass
- settabvar: pass
- tab drop 1: pass
- tab drop 2: pass
- tab drop 3: pass
- 1
- 5
- 5
- 4
- 5
- 3
- 7
- 10
- 1
- 10
- 1
- 10
- 1
- 10
- 4
- 5
- E474 caught.
- === tab split ===
- WinLeave
- TabLeave
- WinEnter
- TabEnter
- === tabnew ===
- WinLeave
- TabLeave
- WinEnter
- TabEnter
- BufLeave
- BufEnter
- a b c
- === call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') ===
- 2 4 6
- === vsplit ===
- WinLeave
- WinEnter
- === tabnext 1 ===
- BufLeave
- WinLeave
- TabLeave
- WinEnter
- TabEnter
- BufEnter
- a a
- === call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)') ===
- 2 4
- === tabnext 3 ===
- BufLeave
- WinLeave
- TabLeave
- WinEnter
- TabEnter
- === tabnext 2 ===
- === tabclose 3 ===
- 2/2
- === tabnew ===
- WinLeave
- TabLeave
- WinEnter
- TabEnter
- BufLeave
- BufEnter
- === tabnext 1 ===
- BufLeave
- WinLeave
- TabLeave
- WinEnter
- TabEnter
- BufEnter
- === tabnext 3 ===
- BufLeave
- WinLeave
- TabLeave
- WinEnter
- TabEnter
- === tabnext 2 ===
- BufLeave
- WinLeave
- TabLeave
- WinEnter
- TabEnter
- === tabnext 2 ===
- === tabclose 3 ===
- BufEnter
- === tabclose 3 ===
- 2/2
--- 0 ----
*** ../vim-7.4.2226/src/testdir/test_alot.vim   2016-08-14 15:31:53.353671912 
+0200
--- src/testdir/test_alot.vim   2016-08-18 21:29:59.462348172 +0200
***************
*** 34,39 ****
--- 34,40 ----
  source test_statusline.vim
  source test_syn_attr.vim
  source test_tabline.vim
+ source test_tabpage.vim
  source test_tagjump.vim
  source test_timers.vim
  source test_true_false.vim
*** ../vim-7.4.2226/src/testdir/test_tabpage.vim        2016-08-18 
22:10:38.992653931 +0200
--- src/testdir/test_tabpage.vim        2016-08-18 21:35:49.195262792 +0200
***************
*** 0 ****
--- 1,189 ----
+ " Tests for tabpage
+ 
+ function Test_tabpage()
+   bw!
+   " Simple test for opening and closing a tab page
+   tabnew
+   call assert_equal(2, tabpagenr())
+   quit
+ 
+   " Open three tab pages and use ":tabdo"
+   0tabnew
+   1tabnew
+   $tabnew
+   tabdo call append(line('$'), tabpagenr())
+   tabclose! 2
+   tabrewind
+   let line1 = getline('$')
+   undo
+   q
+   tablast
+   let line2 = getline('$')
+   q!
+   call append(line('$'), line1)
+   call append(line('$'), line2)
+   unlet line1 line2
+   call assert_equal(['', '3', '1', '4'], getline(1, '$'))
+   "
+   " Test for settabvar() and gettabvar() functions. Open a new tab page and
+   " set 3 variables to a number, string and a list. Verify that the variables
+   " are correctly set.
+   tabnew
+   tabfirst
+   call settabvar(2, 'val_num', 100)
+   call settabvar(2, 'val_str', 'SetTabVar test')
+   call settabvar(2, 'val_list', ['red', 'blue', 'green'])
+   "
+   call assert_true(gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') 
== 'SetTabVar test' && gettabvar(2, 'val_list') == ['red', 'blue', 'green'])
+ 
+   tabnext 2
+   call assert_true(t:val_num == 100 && t:val_str == 'SetTabVar test'  && 
t:val_list == ['red', 'blue', 'green'])
+   tabclose
+ 
+   if has('gui') || has('clientserver')
+     " Test for ":tab drop exist-file" to keep current window.
+     sp test1
+     tab drop test1
+     call assert_true(tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1)
+     close
+     "
+     "
+     " Test for ":tab drop new-file" to keep current window of tabpage 1.
+     split
+     tab drop newfile
+     call assert_true(tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && 
tabpagewinnr(1) == 1)
+     tabclose
+     q
+     "
+     "
+     " Test for ":tab drop multi-opend-file" to keep current tabpage and 
window.
+     new test1
+     tabnew
+     new test1
+     tab drop test1
+     call assert_true(tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && 
tabpagewinnr(2) == 1)
+     tabclose
+     q
+   endif
+   "
+   "
+   for i in range(9) | tabnew | endfor
+   normal! 1gt
+   call assert_equal(1, tabpagenr())
+   tabmove 5
+   call assert_equal(5, tabpagenr())
+   .tabmove
+   call assert_equal(5, tabpagenr())
+   tabmove -
+   call assert_equal(4, tabpagenr())
+   tabmove +
+   call assert_equal(5, tabpagenr())
+   tabmove -2
+   call assert_equal(3, tabpagenr())
+   tabmove +4
+   call assert_equal(7, tabpagenr())
+   tabmove
+   call assert_equal(10, tabpagenr())
+   tabmove -20
+   call assert_equal(1, tabpagenr())
+   tabmove +20
+   call assert_equal(10, tabpagenr())
+   0tabmove
+   call assert_equal(1, tabpagenr())
+   $tabmove
+   call assert_equal(10, tabpagenr())
+   tabmove 0
+   call assert_equal(1, tabpagenr())
+   tabmove $
+   call assert_equal(10, tabpagenr())
+   3tabmove
+   call assert_equal(4, tabpagenr())
+   7tabmove 5
+   call assert_equal(5, tabpagenr())
+   call assert_fails("tabmove foo", 'E474:')
+ endfunc
+ 
+ " Test autocommands
+ function Test_tabpage_with_autocmd()
+   if !has('autocmd')
+     return
+   endif
+   tabonly!
+   command -nargs=1 -bar C :call add(s:li, '=== ' . <q-args> . ' ===')|<args>
+   augroup TestTabpageGroup
+     au!
+     autocmd TabEnter * call add(s:li, 'TabEnter')
+     autocmd WinEnter * call add(s:li, 'WinEnter')
+     autocmd BufEnter * call add(s:li, 'BufEnter')
+     autocmd TabLeave * call add(s:li, 'TabLeave')
+     autocmd WinLeave * call add(s:li, 'WinLeave')
+     autocmd BufLeave * call add(s:li, 'BufLeave')
+   augroup END
+ 
+   let s:li = []
+   let t:a='a'
+   C tab split
+   call assert_equal(['=== tab split ===', 'WinLeave', 'TabLeave', 'WinEnter', 
'TabEnter'], s:li)
+   let s:li = []
+   let t:a='b'
+   C tabnew
+   call assert_equal(['=== tabnew ===', 'WinLeave', 'TabLeave', 'WinEnter', 
'TabEnter', 'BufLeave', 'BufEnter'], s:li)
+   let t:a='c'
+   let s:li = split(join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, 
"a")')) , '\s\+')
+   call assert_equal(['a', 'b', 'c'], s:li)
+ 
+   let s:li = []
+   C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
+   call assert_equal(["=== call map(range(1, tabpagenr('$')), 
'settabvar(v:val, ''a'', v:val*2)') ==="], s:li)
+   let s:li = split(join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, 
"a")')) , '\s\+')
+   call assert_equal(['2', '4', '6'], s:li)
+ 
+   let s:li = []
+   let w:a='a'
+   C vsplit
+   call assert_equal(['=== vsplit ===', 'WinLeave', 'WinEnter'], s:li)
+   let s:li = []
+   let w:a='a'
+   let tabn=tabpagenr()
+   let winr=range(1, winnr('$'))
+   C tabnext 1
+   call assert_equal(['=== tabnext 1 ===', 'BufLeave', 'WinLeave', 'TabLeave', 
'WinEnter', 'TabEnter', 'BufEnter'], s:li)
+   let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, 
"a")')), '\s\+')
+   call assert_equal(['a', 'a'], s:li)
+   let s:li = []
+   C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
+   let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, 
"a")')), '\s\+')
+   call assert_equal(['2', '4'], s:li)
+ 
+   augroup TabDestructive
+     autocmd TabEnter * :C tabnext 2 | C tabclose 3
+   augroup END
+   let s:li = []
+   C tabnext 3
+   call assert_equal(['=== tabnext 3 ===', 'BufLeave', 'WinLeave', 'TabLeave', 
'WinEnter', 'TabEnter', '=== tabnext 2 ===', '=== tabclose 3 ==='], s:li)
+   call assert_equal(['2/2'], [tabpagenr().'/'.tabpagenr('$')])
+ 
+   autocmd! TabDestructive TabEnter
+   let s:li = []
+   C tabnew
+   call assert_equal(['=== tabnew ===', 'WinLeave', 'TabLeave', 'WinEnter', 
'TabEnter', 'BufLeave', 'BufEnter'], s:li)
+   let s:li = []
+   C tabnext 1
+   call assert_equal(['=== tabnext 1 ===', 'BufLeave', 'WinLeave', 'TabLeave', 
'WinEnter', 'TabEnter', 'BufEnter'], s:li)
+ 
+   autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3
+   let s:li = []
+   C tabnext 3
+   call assert_equal(['=== tabnext 3 ===', 'BufLeave', 'WinLeave', 'TabLeave', 
'WinEnter', 'TabEnter', '=== tabnext 2 ===', 'BufLeave', 'WinLeave', 
'TabLeave', 'WinEnter', 'TabEnter', '=== tabnext 2 ===', '=== tabclose 3 ===', 
'BufEnter', '=== tabclose 3 ==='], s:li)
+   call assert_equal(['2/2'], [tabpagenr().'/'.tabpagenr('$')])
+ 
+   delcommand C
+   autocmd! TabDestructive
+   augroup! TabDestructive
+   autocmd! TestTabpageGroup
+   augroup! TestTabpageGroup
+   tabonly!
+   bw!
+ endfunction
+ 
+ " vim: shiftwidth=2 sts=2 expandtab
*** ../vim-7.4.2226/src/version.c       2016-08-18 21:22:00.966648696 +0200
--- src/version.c       2016-08-18 22:10:47.368579820 +0200
***************
*** 765,766 ****
--- 765,768 ----
  {   /* Add new patch number below this line */
+ /**/
+     2227,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
32. You don't know what sex three of your closest friends are, because they
    have neutral nicknames and you never bothered to ask.

 /// 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    ///

 /// 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