neovim/test/old/testdir/test_fixeol.vim
dundargoc af23d17388
test: move oldtests to test directory (#22536)
The new oldtest directory is in test/old/testdir. The reason for this is
that many tests have hardcoded the parent directory name to be
'testdir'.
2023-03-07 11:13:04 +08:00

119 lines
2.8 KiB
VimL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

" Tests for 'fixeol', 'eof' and 'eol'
func Test_fixeol()
" first write two test files with and without trailing EOL
" use Unix fileformat for consistency
set ff=unix
enew!
call setline('.', 'with eol or eof')
w! XXEol
enew!
set noeof noeol nofixeol
call setline('.', 'without eol or eof')
w! XXNoEol
set eol eof fixeol
bwipe XXEol XXNoEol
" try editing files with 'fixeol' disabled
e! XXEol
normal ostays eol
set nofixeol
w! XXTestEol
e! XXNoEol
normal ostays without
set nofixeol
w! XXTestNoEol
bwipe! XXEol XXNoEol XXTestEol XXTestNoEol
set fixeol
" Append "END" to each file so that we can see what the last written char
" was.
normal ggdGaEND
w >>XXEol
w >>XXNoEol
w >>XXTestEol
w >>XXTestNoEol
call assert_equal(['with eol or eof', 'END'], readfile('XXEol'))
call assert_equal(['without eol or eofEND'], readfile('XXNoEol'))
call assert_equal(['with eol or eof', 'stays eol', 'END'], readfile('XXTestEol'))
call assert_equal(['without eol or eof', 'stays withoutEND'],
\ readfile('XXTestNoEol'))
call delete('XXEol')
call delete('XXNoEol')
call delete('XXTestEol')
call delete('XXTestNoEol')
set ff& fixeol& eof& eol&
enew!
endfunc
func Test_eof()
let data = 0z68656c6c6f.0d0a.776f726c64 " "hello\r\nworld"
" 1. Eol, Eof
" read
call writefile(data + 0z0d0a.1a, 'XXEolEof')
e! XXEolEof
call assert_equal(['hello', 'world'], getline(1, 2))
call assert_equal([1, 1], [&eol, &eof])
" write
set fixeol
w!
call assert_equal(data + 0z0d0a, readblob('XXEolEof'))
set nofixeol
w!
call assert_equal(data + 0z0d0a.1a, readblob('XXEolEof'))
" 2. NoEol, Eof
" read
call writefile(data + 0z1a, 'XXNoEolEof')
e! XXNoEolEof
call assert_equal(['hello', 'world'], getline(1, 2))
call assert_equal([0, 1], [&eol, &eof])
" write
set fixeol
w!
call assert_equal(data + 0z0d0a, readblob('XXNoEolEof'))
set nofixeol
w!
call assert_equal(data + 0z1a, readblob('XXNoEolEof'))
" 3. Eol, NoEof
" read
call writefile(data + 0z0d0a, 'XXEolNoEof')
e! XXEolNoEof
call assert_equal(['hello', 'world'], getline(1, 2))
call assert_equal([1, 0], [&eol, &eof])
" write
set fixeol
w!
call assert_equal(data + 0z0d0a, readblob('XXEolNoEof'))
set nofixeol
w!
call assert_equal(data + 0z0d0a, readblob('XXEolNoEof'))
" 4. NoEol, NoEof
" read
call writefile(data, 'XXNoEolNoEof')
e! XXNoEolNoEof
call assert_equal(['hello', 'world'], getline(1, 2))
call assert_equal([0, 0], [&eol, &eof])
" write
set fixeol
w!
call assert_equal(data + 0z0d0a, readblob('XXNoEolNoEof'))
set nofixeol
w!
call assert_equal(data, readblob('XXNoEolNoEof'))
call delete('XXEolEof')
call delete('XXNoEolEof')
call delete('XXEolNoEof')
call delete('XXNoEolNoEof')
set ff& fixeol& eof& eol&
enew!
endfunc
" vim: shiftwidth=2 sts=2 expandtab