summaryrefslogtreecommitdiff
path: root/src/testdir
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-12-14 20:35:01 +0100
committerBram Moolenaar <Bram@vim.org>2019-12-14 20:35:01 +0100
commit3e2d1c8cd61ca073e680f3b221ce887e05ba39cf (patch)
tree36306622622f5927706a1b9effe4a72870b3414e /src/testdir
parent09dd2bb3364cc8fb5a8f2507bc2f4ceba481db3d (diff)
downloadvim-git-3e2d1c8cd61ca073e680f3b221ce887e05ba39cf.tar.gz
patch 8.2.0008: test72 is old stylev8.2.0008
Problem: Test72 is old style. Solution: Convert to new style test. (Yegappan Lakshmanan, closes #5362)
Diffstat (limited to 'src/testdir')
-rw-r--r--src/testdir/Make_all.mak4
-rw-r--r--src/testdir/Make_vms.mms3
-rw-r--r--src/testdir/test72.in146
-rw-r--r--src/testdir/test72.ok31
-rw-r--r--src/testdir/test_undo.vim184
5 files changed, 186 insertions, 182 deletions
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 665bcc776..41f246a2c 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -37,9 +37,7 @@ SCRIPTS_MORE2 = \
# Tests that run on most systems, but not on VMS
SCRIPTS_MORE4 = \
- test59.out \
- test72.out \
-
+ test59.out
# Tests specifically for MS-Windows.
SCRIPTS_WIN32 =
diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms
index e31060bd9..0959c45de 100644
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -76,7 +76,7 @@ VIMPROG = <->vim.exe
SCRIPT = test1.out \
test42.out test44.out test49.out \
test64.out test69.out \
- test72.out test77a.out \
+ test77a.out \
test95.out test99.out \
test_eval.out
@@ -85,7 +85,6 @@ SCRIPT = test1.out \
# 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.
diff --git a/src/testdir/test72.in b/src/testdir/test72.in
deleted file mode 100644
index 961df4c5d..000000000
--- a/src/testdir/test72.in
+++ /dev/null
@@ -1,146 +0,0 @@
-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
diff --git a/src/testdir/test72.ok b/src/testdir/test72.ok
deleted file mode 100644
index 8d30ba10b..000000000
--- a/src/testdir/test72.ok
+++ /dev/null
@@ -1,31 +0,0 @@
-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
diff --git a/src/testdir/test_undo.vim b/src/testdir/test_undo.vim
index 12d835b48..a76073e17 100644
--- a/src/testdir/test_undo.vim
+++ b/src/testdir/test_undo.vim
@@ -469,3 +469,187 @@ funct Test_undofile()
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