diff src/testdir/test_mksession.vim @ 27122:4fd87205ca80 v8.2.4090

patch 8.2.4090: after restoring a session buffer order can be quite different Commit: https://github.com/vim/vim/commit/26ebf1f036517ebeacf571c333a83cca7e13bbe2 Author: Evgeni Chasnovski <evgeni.chasnovski@gmail.com> Date: Fri Jan 14 13:19:43 2022 +0000 patch 8.2.4090: after restoring a session buffer order can be quite different Problem: After restoring a session buffer order can be quite different. Solution: Create buffers first. (Evgeni Chasnovski, closes https://github.com/vim/vim/issues/9520)
author Bram Moolenaar <Bram@vim.org>
date Fri, 14 Jan 2022 14:30:03 +0100
parents 86f8718c643d
children f1c00b8085f6
line wrap: on
line diff
--- a/src/testdir/test_mksession.vim
+++ b/src/testdir/test_mksession.vim
@@ -362,6 +362,31 @@ func Test_mksession_buffer_count()
   set hidden&
 endfunc
 
+func Test_mksession_buffer_order()
+  %bwipe!
+  e Xfoo | e Xbar | e Xbaz | e Xqux
+  bufdo write
+  mksession! Xtest_mks.out
+
+  " Verify that loading the session preserves order of buffers
+  %bwipe!
+  source Xtest_mks.out
+
+  let s:buf_info = getbufinfo()
+  call assert_true(s:buf_info[0]['name'] =~# 'Xfoo$')
+  call assert_true(s:buf_info[1]['name'] =~# 'Xbar$')
+  call assert_true(s:buf_info[2]['name'] =~# 'Xbaz$')
+  call assert_true(s:buf_info[3]['name'] =~# 'Xqux$')
+
+  " Clean up.
+  call delete('Xfoo')
+  call delete('Xbar')
+  call delete('Xbaz')
+  call delete('Xqux')
+  call delete('Xtest_mks.out')
+  %bwipe!
+endfunc
+
 if has('extra_search')
 
 func Test_mksession_hlsearch()