Patch 8.2.0366
Problem: Hardcopy command not tested enough.
Solution: Add tests for printing. (Dominique Pelle, closes #5748)
Files: src/testdir/test_hardcopy.vim
*** ../vim-8.2.0365/src/testdir/test_hardcopy.vim 2018-06-16
14:39:00.000000000 +0200
--- src/testdir/test_hardcopy.vim 2020-03-09 12:06:18.053040722 +0100
***************
*** 1,39 ****
" Test :hardcopy
! func Test_printoptions_parsing()
! " Only test that this doesn't throw an error.
! set printoptions=left:5in,right:10pt,top:8mm,bottom:2pc
! set printoptions=left:2in,top:30pt,right:16mm,bottom:3pc
! set printoptions=header:3,syntax:y,number:7,wrap:n
! set printoptions=duplex:short,collate:n,jobsplit:y,portrait:n
! set printoptions=paper:10x14
! set printoptions=paper:A3
! set printoptions=paper:A4
! set printoptions=paper:A5
! set printoptions=paper:B4
! set printoptions=paper:B5
! set printoptions=paper:executive
! set printoptions=paper:folio
! set printoptions=paper:ledger
! set printoptions=paper:legal
! set printoptions=paper:letter
! set printoptions=paper:quarto
! set printoptions=paper:statement
! set printoptions=paper:tabloid
! set printoptions=formfeed:y
! set printoptions=
! set printoptions&
call assert_fails('set printoptions=paper', 'E550:')
call assert_fails('set printoptions=shredder:on', 'E551:')
call assert_fails('set printoptions=left:no', 'E552:')
endfunc
! func Test_printmbfont_parsing()
! " Only test that this doesn't throw an error.
! set
printmbfont=r:WadaMin-Regular,b:WadaMin-Bold,i:WadaMin-Italic,o:WadaMin-Bold-Italic,c:yes,a:no
! set printmbfont=
set printmbfont&
endfunc
func Test_printheader_parsing()
--- 1,137 ----
" Test :hardcopy
! func Test_printoptions()
! edit test_hardcopy.vim
! syn on
!
! for opt in ['left:5in,right:10pt,top:8mm,bottom:2pc',
! \ 'left:2in,top:30pt,right:16mm,bottom:3pc',
! \ 'header:3,syntax:y,number:y,wrap:n',
! \ 'header:3,syntax:n,number:y,wrap:y',
! \ 'duplex:short,collate:n,jobsplit:y,portrait:n',
! \ 'duplex:long,collate:y,jobsplit:n,portrait:y',
! \ 'paper:10x14',
! \ 'paper:A3',
! \ 'paper:A4',
! \ 'paper:A5',
! \ 'paper:B4',
! \ 'paper:B5',
! \ 'paper:executive',
! \ 'paper:folio',
! \ 'paper:ledger',
! \ 'paper:legal',
! \ 'paper:letter',
! \ 'paper:quarto',
! \ 'paper:statement',
! \ 'paper:tabloid',
! \ 'formfeed:y',
! \ '']
! exe 'set printoptions=' .. opt
! if has('postscript')
! hardcopy > Xhardcopy_printoptions
! let lines = readfile('Xhardcopy_printoptions')
! call assert_true(len(lines) > 20, opt)
! call assert_true(lines[0] =~ 'PS-Adobe', opt)
! call delete('Xhardcopy_printoptions')
! endif
! endfor
call assert_fails('set printoptions=paper', 'E550:')
call assert_fails('set printoptions=shredder:on', 'E551:')
call assert_fails('set printoptions=left:no', 'E552:')
+ set printoptions&
+ bwipe
endfunc
! func Test_printmbfont()
! " Print a small help page which contains tabs to cover code that expands
tabs to spaces.
! help help
! syn on
!
! for opt in
[':WadaMin-Regular,b:WadaMin-Bold,i:WadaMin-Italic,o:WadaMin-Bold-Italic,c:yes,a:no',
! \ '']
! exe 'set printmbfont=' .. opt
! if has('postscript')
! hardcopy > Xhardcopy_printmbfont
! let lines = readfile('Xhardcopy_printmbfont')
! call assert_true(len(lines) > 20, opt)
! call assert_true(lines[0] =~ 'PS-Adobe', opt)
! call delete('Xhardcopy_printmbfont')
! endif
! endfor
set printmbfont&
+ bwipe
+ endfunc
+
+ func Test_printexpr()
+ if !has('unix')
+ return
+ endif
+
+ " Not a very useful printexpr value, but enough to test
+ " hardcopy with 'printexpr'.
+ function PrintFile(fname)
+ call writefile(['Test printexpr: ' .. v:cmdarg],
+ \ 'Xhardcopy_printexpr')
+ call delete(a:fname)
+ return 0
+ endfunc
+ set printexpr=PrintFile(v:fname_in)
+
+ help help
+ hardcopy dummy args
+ call assert_equal(['Test printexpr: dummy args'],
+ \ readfile('Xhardcopy_printexpr'))
+ call delete('Xhardcopy_printexpr')
+
+ " Function return 1 to test print failure.
+ function PrintFails(fname)
+ call delete(a:fname)
+ return 1
+ endfunc
+ set printexpr=PrintFails(v:fname_in)
+ call assert_fails('hardcopy', 'E365:')
+
+ set printexpr&
+ bwipe
+ endfunc
+
+ func Test_errors()
+ " FIXME: Windows fails differently than Unix.
+ if has('unix')
+ edit test_hardcopy.vim
+ call assert_fails('hardcopy >', 'E324:')
+ bwipe
+ endif
+ endfunc
+
+ func Test_dark_background()
+ edit test_hardcopy.vim
+ syn on
+
+ for bg in ['dark', 'light']
+ exe 'set background=' .. bg
+
+ if has('postscript')
+ hardcopy > Xhardcopy_dark_background
+ let lines = readfile('Xhardcopy_dark_background')
+ call assert_true(len(lines) > 20)
+ call assert_true(lines[0] =~ 'PS-Adobe')
+ call delete('Xhardcopy_dark_background')
+ endif
+ endfor
+
+ set background&
+ bwipe
+ endfun
+
+ func Test_empty_buffer()
+ " FIXME: Unclear why this fails on Windows.
+ if has('unix')
+ new
+ call assert_equal("\nNo text to be printed", execute('hardcopy'))
+ bwipe
+ endif
endfunc
func Test_printheader_parsing()
***************
*** 46,67 ****
set printheader&
endfunc
- " Test that :hardcopy produces a non-empty file.
- " We don't check much of the contents.
- func Test_with_syntax()
- if has('postscript')
- edit test_hardcopy.vim
- set printoptions=syntax:y
- syn on
- hardcopy > Xhardcopy
- let lines = readfile('Xhardcopy')
- call assert_true(len(lines) > 20)
- call assert_true(lines[0] =~ 'PS-Adobe')
- call delete('Xhardcopy')
- set printoptions&
- endif
- endfunc
-
func Test_fname_with_spaces()
if !has('postscript')
return
--- 144,149 ----
***************
*** 86,89 ****
bwipe!
call delete('Xpstest')
endfunc
-
--- 168,170 ----
*** ../vim-8.2.0365/src/version.c 2020-03-09 08:17:47.934476791 +0100
--- src/version.c 2020-03-09 12:12:59.458897770 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 366,
/**/
--
Some of the well known MS-Windows errors:
EMULTI Multitasking attempted, system confused
EKEYBOARD Keyboard locked, try getting out of this one!
EXPLAIN Unexplained error, please tell us what happened
EFUTURE Reserved for our future mistakes
/// 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].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/202003091114.029BEmnW019064%40masaka.moolenaar.net.