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