To: vim_dev@googlegroups.com Subject: Patch 8.2.0008 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.0008 Problem: Test72 is old style. Solution: Convert to new style test. (Yegappan Lakshmanan, closes #5362) Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/test72.in, src/testdir/test72.ok, src/testdir/test_undo.vim *** ../vim-8.2.0007/src/Makefile 2019-12-14 13:09:13.658894314 +0100 --- src/Makefile 2019-12-14 20:29:59.471850545 +0100 *************** *** 2256,2262 **** test42 test44 test49 \ test52 test59 \ test64 test69 \ ! test70 test72 \ test86 test87 \ test95 test99: cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE) --- 2256,2262 ---- test42 test44 test49 \ test52 test59 \ test64 test69 \ ! test70 \ test86 test87 \ test95 test99: cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE) *** ../vim-8.2.0007/src/testdir/Make_all.mak 2019-12-11 20:07:24.000000000 +0100 --- src/testdir/Make_all.mak 2019-12-14 20:29:59.471850545 +0100 *************** *** 37,45 **** # Tests that run on most systems, but not on VMS SCRIPTS_MORE4 = \ ! test59.out \ ! test72.out \ ! # Tests specifically for MS-Windows. SCRIPTS_WIN32 = --- 37,43 ---- # Tests that run on most systems, but not on VMS SCRIPTS_MORE4 = \ ! test59.out # Tests specifically for MS-Windows. SCRIPTS_WIN32 = *** ../vim-8.2.0007/src/testdir/Make_vms.mms 2019-12-11 20:07:24.000000000 +0100 --- src/testdir/Make_vms.mms 2019-12-14 20:29:59.471850545 +0100 *************** *** 76,82 **** SCRIPT = test1.out \ test42.out test44.out test49.out \ test64.out test69.out \ ! test72.out test77a.out \ test95.out test99.out \ test_eval.out --- 76,82 ---- SCRIPT = test1.out \ test42.out test44.out test49.out \ test64.out test69.out \ ! test77a.out \ test95.out test99.out \ test_eval.out *************** *** 85,91 **** # test59: Failed/Hangs - VMS does not support spell files (file names # with too many dots). # - # test72: bug - Vim hangs at :rename (while rename works well otherwise) # test78: bug - Vim dies at :recover Xtest # test89: bug - findfile() does not work on VMS (just in the current directory) # test102: Just ODS-5 supports space and special chars in the filename. --- 85,90 ---- *** ../vim-8.2.0007/src/testdir/test72.in 2019-01-04 12:37:42.000000000 +0100 --- src/testdir/test72.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,146 **** - Tests for undo file. - Since this script is sourced we need to explicitly break changes up in - undo-able pieces. Do that by setting 'undolevels'. - - STARTTEST - :so small.vim - :set belloff=all - :" - :" Test 'undofile': first a simple one-line change. - :set nocompatible viminfo+=nviminfo visualbell - :set ul=100 undofile nomore - :e! Xtestfile - ggdGithis is one line:set ul=100 - :s/one/ONE/ - :set ul=100 - :w - :bwipe! - :e Xtestfile - u:.w! test.out - :" - :" Test 'undofile', change in original file fails check - :set noundofile - :e! Xtestfile - :s/line/Line/ - :w - :set undofile - :bwipe! - :e Xtestfile - u:.w >>test.out - :" - :" Test 'undofile', add 10 lines, delete 6 lines, undo 3 - :set undofile - ggdGione - two - three - four - five - six - seven - eight - nine - ten:set ul=100 - 3Gdd:set ul=100 - dd:set ul=100 - dd:set ul=100 - dd:set ul=100 - dd:set ul=100 - dd:set ul=100 - :w - :bwipe! - :e Xtestfile - uuu:w >>test.out - :" - :" Test that reading the undofiles when setting undofile works - :set noundofile ul=0 - i - u:e! Xtestfile - :set undofile ul=100 - uuuuuu:w >>test.out - :" And now with encryption, cryptmethod=zip - :e! Xtestfile - :set undofile cm=zip - ggdGimonday - tuesday - wednesday - thursday - friday:set ul=100 - kkkdd:set ul=100 - dd:set ul=100 - dd:set ul=100 - :X - foobar - foobar - :w! - :bwipe! - :e Xtestfile - foobar - :set key= - uu:w >>test.out - :" - :" - :" With encryption, cryptmethod=blowfish - :e! Xtestfile - rubbish - :set undofile cm=blowfish ff& - ggdGijan - feb - mar - apr - jun:set ul=100 - kk0ifoo :set ul=100 - dd:set ul=100 - ibar :set ul=100 - :X - foobar - foobar - :w! - :bwipe! - :e Xtestfile - foobar - :set key= - /bar - :.w >>test.out - u:.w >>test.out - u:.w >>test.out - u:.w >>test.out - :" - :" With encryption, cryptmethod=blowfish2 - :e! Xtestfile - rubbish - :set undofile cm=blowfish2 ff& - ggdGijan - feb - mar - apr - jun:set ul=100 - kk0ifoo :set ul=100 - dd:set ul=100 - ibar :set ul=100 - :X - foo2bar - foo2bar - :w! - :bwipe! - :e Xtestfile - foo2bar - :set key= - /bar - :.w >>test.out - u:.w >>test.out - u:.w >>test.out - u:.w >>test.out - :" - :" Rename the undo file so that it gets cleaned up. - :if has("vms") - : call rename("_un_Xtestfile", "Xtestundo") - :else - : call rename(".Xtestfile.un~", "Xtestundo") - :endif - :qa! - ENDTEST - - 1111 ----- - 2222 ----- - - 123456789 --- 0 ---- *** ../vim-8.2.0007/src/testdir/test72.ok 2014-08-09 15:12:58.000000000 +0200 --- src/testdir/test72.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,31 **** - this is one line - this is ONE Line - one - two - six - seven - eight - nine - ten - one - two - three - four - five - six - seven - eight - nine - ten - monday - wednesday - thursday - friday - bar apr - apr - foo mar - mar - bar apr - apr - foo mar - mar --- 0 ---- *** ../vim-8.2.0007/src/testdir/test_undo.vim 2019-10-28 00:33:37.000000000 +0100 --- src/testdir/test_undo.vim 2019-12-14 20:29:59.471850545 +0100 *************** *** 469,471 **** --- 469,655 ---- set undodir& endfunc + + " Tests for the undo file + " Explicitly break changes up in undo-able pieces by setting 'undolevels'. + func Test_undofile_2() + set undolevels=100 undofile + edit Xtestfile + call append(0, 'this is one line') + call cursor(1, 1) + + " first a simple one-line change. + set undolevels=100 + s/one/ONE/ + set undolevels=100 + write + bwipe! + edit Xtestfile + undo + call assert_equal('this is one line', getline(1)) + + " change in original file fails check + set noundofile + edit! Xtestfile + s/line/Line/ + write + set undofile + bwipe! + edit Xtestfile + undo + call assert_equal('this is ONE Line', getline(1)) + + " add 10 lines, delete 6 lines, undo 3 + set undofile + call setbufline(0, 1, ['one', 'two', 'three', 'four', 'five', 'six', + \ 'seven', 'eight', 'nine', 'ten']) + set undolevels=100 + normal 3Gdd + set undolevels=100 + normal dd + set undolevels=100 + normal dd + set undolevels=100 + normal dd + set undolevels=100 + normal dd + set undolevels=100 + normal dd + set undolevels=100 + write + bwipe! + edit Xtestfile + normal uuu + call assert_equal(['one', 'two', 'six', 'seven', 'eight', 'nine', 'ten'], + \ getline(1, '$')) + + " Test that reading the undofiles when setting undofile works + set noundofile undolevels=0 + exe "normal i\n" + undo + edit! Xtestfile + set undofile undolevels=100 + normal uuuuuu + call assert_equal(['one', 'two', 'three', 'four', 'five', 'six', 'seven', + \ 'eight', 'nine', 'ten'], getline(1, '$')) + + bwipe! + call delete('Xtestfile') + let ufile = has('vms') ? '_un_Xtestfile' : '.Xtestfile.un~' + call delete(ufile) + set undofile& undolevels& + endfunc + + " Test 'undofile' using a file encrypted with 'zip' crypt method + func Test_undofile_cryptmethod_zip() + edit Xtestfile + set undofile cryptmethod=zip + call append(0, ['monday', 'tuesday', 'wednesday', 'thursday', 'friday']) + call cursor(5, 1) + + set undolevels=100 + normal kkkdd + set undolevels=100 + normal dd + set undolevels=100 + normal dd + set undolevels=100 + " encrypt the file using key 'foobar' + call feedkeys("foobar\nfoobar\n") + X + write! + bwipe! + + call feedkeys("foobar\n") + edit Xtestfile + set key= + normal uu + call assert_equal(['monday', 'wednesday', 'thursday', 'friday', ''], + \ getline(1, '$')) + + bwipe! + call delete('Xtestfile') + let ufile = has('vms') ? '_un_Xtestfile' : '.Xtestfile.un~' + call delete(ufile) + set undofile& undolevels& cryptmethod& + endfunc + + " Test 'undofile' using a file encrypted with 'blowfish' crypt method + func Test_undofile_cryptmethod_blowfish() + edit Xtestfile + set undofile cryptmethod=blowfish + call append(0, ['jan', 'feb', 'mar', 'apr', 'jun']) + call cursor(5, 1) + + set undolevels=100 + exe 'normal kk0ifoo ' + set undolevels=100 + normal dd + set undolevels=100 + exe 'normal ibar ' + set undolevels=100 + " encrypt the file using key 'foobar' + call feedkeys("foobar\nfoobar\n") + X + write! + bwipe! + + call feedkeys("foobar\n") + edit Xtestfile + set key= + call search('bar') + call assert_equal('bar apr', getline('.')) + undo + call assert_equal('apr', getline('.')) + undo + call assert_equal('foo mar', getline('.')) + undo + call assert_equal('mar', getline('.')) + + bwipe! + call delete('Xtestfile') + let ufile = has('vms') ? '_un_Xtestfile' : '.Xtestfile.un~' + call delete(ufile) + set undofile& undolevels& cryptmethod& + endfunc + + " Test 'undofile' using a file encrypted with 'blowfish2' crypt method + func Test_undofile_cryptmethod_blowfish2() + edit Xtestfile + set undofile cryptmethod=blowfish2 + call append(0, ['jan', 'feb', 'mar', 'apr', 'jun']) + call cursor(5, 1) + + set undolevels=100 + exe 'normal kk0ifoo ' + set undolevels=100 + normal dd + set undolevels=100 + exe 'normal ibar ' + set undolevels=100 + " encrypt the file using key 'foo2bar' + call feedkeys("foo2bar\nfoo2bar\n") + X + write! + bwipe! + + call feedkeys("foo2bar\n") + edit Xtestfile + set key= + call search('bar') + call assert_equal('bar apr', getline('.')) + normal u + call assert_equal('apr', getline('.')) + normal u + call assert_equal('foo mar', getline('.')) + normal u + call assert_equal('mar', getline('.')) + + bwipe! + call delete('Xtestfile') + let ufile = has('vms') ? '_un_Xtestfile' : '.Xtestfile.un~' + call delete(ufile) + set undofile& undolevels& cryptmethod& + endfunc + + " vim: shiftwidth=2 sts=2 expandtab *** ../vim-8.2.0007/src/version.c 2019-12-14 18:41:52.155639334 +0100 --- src/version.c 2019-12-14 20:31:15.427659376 +0100 *************** *** 744,745 **** --- 744,747 ---- { /* Add new patch number below this line */ + /**/ + 8, /**/ -- In war we're tough and able. Quite indefatigable Between our quests We sequin vests And impersonate Clark Gable It's a busy life in Camelot. I have to push the pram a lot. "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///