patch 9.1.0893: No test that undofile format does not regress
Problem: No test that undofile format does not regress
Solution: include a sample undofile to make sure we are always able to
read it
This is so, that we don't unintentionally change the undofile format and
make sure we can load an undo file that has been created by an older
Vim.
closes: #16127
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/Filelist b/Filelist
index c5b1b39..caac66c 100644
--- a/Filelist
+++ b/Filelist
@@ -224,6 +224,7 @@
src/testdir/samples/*.vim \
src/testdir/samples/test000 \
src/testdir/samples/test.zip \
+ src/testdir/samples/test_undo.txt.undo \
src/testdir/samples/testa.zip \
src/testdir/color_ramp.vim \
src/testdir/silent.wav \
diff --git a/src/testdir/samples/test_undo.txt b/src/testdir/samples/test_undo.txt
new file mode 100644
index 0000000..4cb29ea
--- /dev/null
+++ b/src/testdir/samples/test_undo.txt
@@ -0,0 +1,3 @@
+one
+two
+three
diff --git a/src/testdir/samples/test_undo.txt.undo b/src/testdir/samples/test_undo.txt.undo
new file mode 100644
index 0000000..393af7f
--- /dev/null
+++ b/src/testdir/samples/test_undo.txt.undo
Binary files differ
diff --git a/src/testdir/test_undo.vim b/src/testdir/test_undo.vim
index 2e598d3..75ee4a5 100644
--- a/src/testdir/test_undo.vim
+++ b/src/testdir/test_undo.vim
@@ -884,4 +884,33 @@
bwipe!
endfunc
+func Test_load_existing_undofile()
+ CheckFeature persistent_undo
+ sp samples/test_undo.txt
+ let mess=execute(':verbose rundo samples/test_undo.txt.undo')
+ call assert_match('Finished reading undo file', mess)
+
+ call assert_equal(['one', 'two', 'three'], getline(1, '$'))
+ norm! u
+ call assert_equal(['one', 'two'], getline(1, '$'))
+ norm! u
+ call assert_equal(['one'], getline(1, '$'))
+ norm! u
+ call assert_equal([''], getline(1, '$'))
+ let mess = execute(':norm! u')
+ call assert_equal([''], getline(1, '$'))
+ call assert_match('Already at oldest change', mess)
+ exe ":norm! \<c-r>"
+ call assert_equal(['one'], getline(1, '$'))
+ exe ":norm! \<c-r>"
+ call assert_equal(['one', 'two'], getline(1, '$'))
+ exe ":norm! \<c-r>"
+ call assert_equal(['one', 'two', 'three'], getline(1, '$'))
+ let mess = execute(":norm! \<c-r>")
+ call assert_equal(['one', 'two', 'three'], getline(1, '$'))
+ call assert_match('Already at newest change', mess)
+ bw!
+endfunc
+
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index d5a7899..8c4afd0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 893,
+/**/
892,
/**/
891,