Mercurial > vim
view src/testdir/test_source.vim @ 19350:76cb39bf1871 v8.2.0233
patch 8.2.0233: crash when using garbagecollect() in between rand()
Commit: https://github.com/vim/vim/commit/4f645c54efe33d7a11e314676e503118761f08a7
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Feb 8 16:40:39 2020 +0100
patch 8.2.0233: crash when using garbagecollect() in between rand()
Problem: Crash when using garbagecollect() in between rand().
Solution: Redesign the rand() and srand() implementation. (Yasuhiro
Matsumoto, closes #5587, closes #5588)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 08 Feb 2020 16:45:04 +0100 |
parents | 9efea787c3a6 |
children | 02111977dd05 |
line wrap: on
line source
" Tests for the :source command. func Test_source_autocmd() call writefile([ \ 'let did_source = 1', \ ], 'Xsourced') au SourcePre *source* let did_source_pre = 1 au SourcePost *source* let did_source_post = 1 source Xsourced call assert_equal(g:did_source, 1) call assert_equal(g:did_source_pre, 1) call assert_equal(g:did_source_post, 1) call delete('Xsourced') au! SourcePre au! SourcePost unlet g:did_source unlet g:did_source_pre unlet g:did_source_post endfunc func Test_source_cmd() au SourceCmd *source* let did_source = expand('<afile>') au SourcePre *source* let did_source_pre = 2 au SourcePost *source* let did_source_post = 2 source Xsourced call assert_equal(g:did_source, 'Xsourced') call assert_false(exists('g:did_source_pre')) call assert_equal(g:did_source_post, 2) au! SourceCmd au! SourcePre au! SourcePost endfunc func Test_source_sandbox() new call writefile(["Ohello\<Esc>"], 'Xsourcehello') source! Xsourcehello | echo call assert_equal('hello', getline(1)) call assert_fails('sandbox source! Xsourcehello', 'E48:') bwipe! call delete('Xsourcehello') endfunc " When deleting a file and immediately creating a new one the inode may be " recycled. Vim should not recognize it as the same script. func Test_different_script() call writefile(['let s:var = "asdf"'], 'XoneScript') source XoneScript call delete('XoneScript') call writefile(['let g:var = s:var'], 'XtwoScript') call assert_fails('source XtwoScript', 'E121:') call delete('XtwoScript') endfunc