Mercurial > vim
view src/testdir/test72.in @ 15721:e84eb23f4670 v8.1.0868
patch 8.1.0868: crash if triggering garbage collector after a function call
commit https://github.com/vim/vim/commit/889da2f2438c8168f9a25dc776360b81109bad44
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Feb 2 14:02:30 2019 +0100
patch 8.1.0868: crash if triggering garbage collector after a function call
Problem: Crash if triggering garbage collector after a function call.
(Michael Henry)
Solution: Don't call the garbage collector right away, do it later.
(closes #3894)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 02 Feb 2019 14:15:12 +0100 |
parents | ae45d497868f |
children |
line wrap: on
line source
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