diff options
| -rw-r--r-- | src/nvim/testdir/Makefile | 1 | ||||
| -rw-r--r-- | src/nvim/testdir/test30.in | 230 | ||||
| -rw-r--r-- | src/nvim/testdir/test30.ok | 130 | ||||
| -rw-r--r-- | test/functional/legacy/030_fileformats_spec.lua | 375 | 
4 files changed, 375 insertions, 361 deletions
| diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile index fb0079111c..9a0bba83fe 100644 --- a/src/nvim/testdir/Makefile +++ b/src/nvim/testdir/Makefile @@ -14,7 +14,6 @@ SCRIPTS := \             test14.out             \             test17.out             \             test24.out             \ -           test30.out             \             test32.out             \             test37.out             \             test40.out             \ diff --git a/src/nvim/testdir/test30.in b/src/nvim/testdir/test30.in deleted file mode 100644 index 56d5d5c6c2..0000000000 --- a/src/nvim/testdir/test30.in +++ /dev/null @@ -1,230 +0,0 @@ -Test for a lot of variations of the 'fileformats' option - -Note: This test will fail if "cat" is not available. - -STARTTEST -:" first write three test files, one in each format -:set fileformat=unix -:set fileformats= -:/^unix/;/eof/-1w! XXUnix -:/^dos/;/eof/-1w! XXDos -:set bin noeol -:$w! XXMac -Gonoeol -:$w! XXEol -:set nobin eol -:enew! -:bwipe XXUnix XXDos XXMac -:" create mixed format files -:if has("win32") -: !copy /b XXUnix+XXDos XXUxDs -: !copy /b XXUnix+XXMac XXUxMac -: !copy /b XXDos+XXMac XXDosMac -: !copy /b XXMac+XXEol XXMacEol -: !copy /b XXUnix+XXDos+XXMac XXUxDsMc -:else -: !cat XXUnix XXDos >XXUxDs -: !cat XXUnix XXMac >XXUxMac -: !cat XXDos XXMac >XXDosMac -: !cat XXMac XXEol >XXMacEol -: !cat XXUnix XXDos XXMac >XXUxDsMc -:endif -:" -:" try reading and writing with 'fileformats' empty -:set fileformat=unix -:e! XXUnix -:w! test.out -:e! XXDos -:w! XXtt01 -:e! XXMac -:w! XXtt02 -:bwipe XXUnix XXDos XXMac -:set fileformat=dos -:e! XXUnix -:w! XXtt11 -:e! XXDos -:w! XXtt12 -:e! XXMac -:w! XXtt13 -:bwipe XXUnix XXDos XXMac -:set fileformat=mac -:e! XXUnix -:w! XXtt21 -:e! XXDos -:w! XXtt22 -:e! XXMac -:w! XXtt23 -:bwipe XXUnix XXDos XXMac -:" -:" try reading and writing with 'fileformats' set to one format -:set fileformats=unix -:e! XXUxDsMc -:w! XXtt31 -:bwipe XXUxDsMc -:set fileformats=dos -:e! XXUxDsMc -:w! XXtt32 -:bwipe XXUxDsMc -:set fileformats=mac -:e! XXUxDsMc -:w! XXtt33 -:bwipe XXUxDsMc -:" -:" try reading and writing with 'fileformats' set to two formats -:set fileformats=unix,dos -:e! XXUxDsMc -:w! XXtt41 -:bwipe XXUxDsMc -:e! XXUxMac -:w! XXtt42 -:bwipe XXUxMac -:e! XXDosMac -:w! XXtt43 -:bwipe XXDosMac -:set fileformats=unix,mac -:e! XXUxDs -:w! XXtt51 -:bwipe XXUxDs -:e! XXUxDsMc -:w! XXtt52 -:bwipe XXUxDsMc -:e! XXDosMac -:w! XXtt53 -:bwipe XXDosMac -:e! XXEol -ggO=&ffs -:=&ff -:w! XXtt54 -:bwipe XXEol -:set fileformats=dos,mac -:e! XXUxDs -:w! XXtt61 -:bwipe XXUxDs -:e! XXUxMac -ggO=&ffs -:=&ff -:w! XXtt62 -:bwipe XXUxMac -:e! XXUxDsMc -:w! XXtt63 -:bwipe XXUxDsMc -:e! XXMacEol -ggO=&ffs -:=&ff -:w! XXtt64 -:bwipe XXMacEol -:" -:" try reading and writing with 'fileformats' set to three formats -:set fileformats=unix,dos,mac -:e! XXUxDsMc -:w! XXtt71 -:bwipe XXUxDsMc -:e! XXEol -ggO=&ffs -:=&ff -:w! XXtt72 -:bwipe XXEol -:set fileformats=mac,dos,unix -:e! XXUxDsMc -:w! XXtt81 -:bwipe XXUxDsMc -:e! XXEol -ggO=&ffs -:=&ff -:w! XXtt82 -:bwipe XXEol -:" try with 'binary' set -:set fileformats=mac,unix,dos -:set binary -:e! XXUxDsMc -:w! XXtt91 -:bwipe XXUxDsMc -:set fileformats=mac -:e! XXUxDsMc -:w! XXtt92 -:bwipe XXUxDsMc -:set fileformats=dos -:e! XXUxDsMc -:w! XXtt93 -:" -:" Append "END" to each file so that we can see what the last written char was. -:set fileformat=unix nobin -ggdGaEND:w >>XXtt01 -:w >>XXtt02 -:w >>XXtt11 -:w >>XXtt12 -:w >>XXtt13 -:w >>XXtt21 -:w >>XXtt22 -:w >>XXtt23 -:w >>XXtt31 -:w >>XXtt32 -:w >>XXtt33 -:w >>XXtt41 -:w >>XXtt42 -:w >>XXtt43 -:w >>XXtt51 -:w >>XXtt52 -:w >>XXtt53 -:w >>XXtt54 -:w >>XXtt61 -:w >>XXtt62 -:w >>XXtt63 -:w >>XXtt64 -:w >>XXtt71 -:w >>XXtt72 -:w >>XXtt81 -:w >>XXtt82 -:w >>XXtt91 -:w >>XXtt92 -:w >>XXtt93 -:" -:" Concatenate the results. -:" Make fileformat of test.out the native fileformat. -:" Add a newline at the end. -:set binary -:e! test.out -:$r XXtt01 -:$r XXtt02 -Go1:$r XXtt11 -:$r XXtt12 -:$r XXtt13 -Go2:$r XXtt21 -:$r XXtt22 -:$r XXtt23 -Go3:$r XXtt31 -:$r XXtt32 -:$r XXtt33 -Go4:$r XXtt41 -:$r XXtt42 -:$r XXtt43 -Go5:$r XXtt51 -:$r XXtt52 -:$r XXtt53 -:$r XXtt54 -Go6:$r XXtt61 -:$r XXtt62 -:$r XXtt63 -:$r XXtt64 -Go7:$r XXtt71 -:$r XXtt72 -Go8:$r XXtt81 -:$r XXtt82 -Go9:$r XXtt91 -:$r XXtt92 -:$r XXtt93 -Go10:$r XXUnix -:set nobinary ff& -:w -:qa! -ENDTEST - -unix -unix -eof - -dos
 -dos
 -eof - -mac
mac
 diff --git a/src/nvim/testdir/test30.ok b/src/nvim/testdir/test30.ok deleted file mode 100644 index b35f4f5904..0000000000 --- a/src/nvim/testdir/test30.ok +++ /dev/null @@ -1,130 +0,0 @@ -unix -unix -dos
 -dos
 -END -mac
mac
 -END -1 -unix
 -unix
 -END -dos
 -dos
 -END -mac
mac
 -END -2 -unix -unix -
END -dos
 -dos
 -
END -mac
mac
END -3 -unix -unix -dos
 -dos
 -mac
mac
 -END -unix
 -unix
 -dos
 -dos
 -mac
mac
 -END -unix -unix -dos
 -dos
 -mac
mac
END -4 -unix -unix -dos
 -dos
 -mac
mac
 -END -unix -unix -mac
mac
 -END -dos
 -dos
 -mac
mac
 -END -5 -unix -unix -dos
 -dos
 -END -unix -unix -dos
 -dos
 -mac
mac
 -END -dos
 -dos
 -mac
mac
END -unix,mac:unix -noeol -END -6 -unix
 -unix
 -dos
 -dos
 -END -dos,mac:dos
 -unix
 -unix
 -mac
mac
 -END -unix
 -unix
 -dos
 -dos
 -mac
mac
 -END -dos,mac:mac
mac
mac
noeol
END -7 -unix -unix -dos
 -dos
 -mac
mac
 -END -unix,dos,mac:unix -noeol -END -8 -unix -unix -dos
 -dos
 -mac
mac
 -END -mac,dos,unix:mac
noeol
END -9 -unix -unix -dos
 -dos
 -mac
mac
END -unix -unix -dos
 -dos
 -mac
mac
END -unix -unix -dos
 -dos
 -mac
mac
END -10 -unix -unix diff --git a/test/functional/legacy/030_fileformats_spec.lua b/test/functional/legacy/030_fileformats_spec.lua new file mode 100644 index 0000000000..31b051a58d --- /dev/null +++ b/test/functional/legacy/030_fileformats_spec.lua @@ -0,0 +1,375 @@ +-- Test for a lot of variations of the 'fileformats' option + +local helpers = require('test.functional.helpers') +local feed, clear, execute = helpers.feed, helpers.clear, helpers.execute +local eq, write_file = helpers.eq, helpers.write_file + +describe('fileformats option', function() +  setup(function() +    clear() +    local dos = 'dos\r\ndos\r\n' +    local mac = 'mac\rmac\r' +    local unix = 'unix\nunix\n' +    local eol = 'noeol' +    write_file('XXDos', dos) +    write_file('XXMac', mac) +    write_file('XXUnix', unix) +    write_file('XXEol', eol) +    write_file('XXDosMac', dos..mac) +    write_file('XXMacEol', mac..eol) +    write_file('XXUxDs', unix..dos) +    write_file('XXUxDsMc', unix..dos..mac) +    write_file('XXUxMac', unix..mac) +  end) + +  teardown(function() +    os.remove('test.out') +    os.remove('XXDos') +    os.remove('XXMac') +    os.remove('XXUnix') +    os.remove('XXEol') +    os.remove('XXDosMac') +    os.remove('XXMacEol') +    os.remove('XXUxDs') +    os.remove('XXUxDsMc') +    os.remove('XXUxMac') +    for i = 0, 9 do +      for j = 1, 4 do +        os.remove('XXtt'..i..j) +      end +    end +  end) + +  it('is working', function() + +    -- Try reading and writing with 'fileformats' empty. +    execute('set fileformats=') +    execute('set fileformat=unix') +    execute('e! XXUnix') +    execute('w! test.out') +    execute('e! XXDos') +    execute('w! XXtt01') +    execute('e! XXMac') +    execute('w! XXtt02') +    execute('bwipe XXUnix XXDos XXMac') +    execute('set fileformat=dos') +    execute('e! XXUnix') +    execute('w! XXtt11') +    execute('e! XXDos') +    execute('w! XXtt12') +    execute('e! XXMac') +    execute('w! XXtt13') +    execute('bwipe XXUnix XXDos XXMac') +    execute('set fileformat=mac') +    execute('e! XXUnix') +    execute('w! XXtt21') +    execute('e! XXDos') +    execute('w! XXtt22') +    execute('e! XXMac') +    execute('w! XXtt23') +    execute('bwipe XXUnix XXDos XXMac') + +    -- Try reading and writing with 'fileformats' set to one format. +    execute('set fileformats=unix') +    execute('e! XXUxDsMc') +    execute('w! XXtt31') +    execute('bwipe XXUxDsMc') +    execute('set fileformats=dos') +    execute('e! XXUxDsMc') +    execute('w! XXtt32') +    execute('bwipe XXUxDsMc') +    execute('set fileformats=mac') +    execute('e! XXUxDsMc') +    execute('w! XXtt33') +    execute('bwipe XXUxDsMc') + +    -- Try reading and writing with 'fileformats' set to two formats. +    execute('set fileformats=unix,dos') +    execute('e! XXUxDsMc') +    execute('w! XXtt41') +    execute('bwipe XXUxDsMc') +    execute('e! XXUxMac') +    execute('w! XXtt42') +    execute('bwipe XXUxMac') +    execute('e! XXDosMac') +    execute('w! XXtt43') +    execute('bwipe XXDosMac') +    execute('set fileformats=unix,mac') +    execute('e! XXUxDs') +    execute('w! XXtt51') +    execute('bwipe XXUxDs') +    execute('e! XXUxDsMc') +    execute('w! XXtt52') +    execute('bwipe XXUxDsMc') +    execute('e! XXDosMac') +    execute('w! XXtt53') +    execute('bwipe XXDosMac') +    execute('e! XXEol') +    feed('ggO<C-R>=&ffs<CR>:<C-R>=&ff<CR><ESC>') +    execute('w! XXtt54') +    execute('bwipe XXEol') +    execute('set fileformats=dos,mac') +    execute('e! XXUxDs') +    execute('w! XXtt61') +    execute('bwipe XXUxDs') +    execute('e! XXUxMac') +    feed('ggO<C-R>=&ffs<CR>:<C-R>=&ff<CR><ESC>') +    execute('w! XXtt62') +    execute('bwipe XXUxMac') +    execute('e! XXUxDsMc') +    execute('w! XXtt63') +    execute('bwipe XXUxDsMc') +    execute('e! XXMacEol') +    feed('ggO<C-R>=&ffs<CR>:<C-R>=&ff<CR><ESC>') +    execute('w! XXtt64') +    execute('bwipe XXMacEol') + +    -- Try reading and writing with 'fileformats' set to three formats. +    execute('set fileformats=unix,dos,mac') +    execute('e! XXUxDsMc') +    execute('w! XXtt71') +    execute('bwipe XXUxDsMc') +    execute('e! XXEol') +    feed('ggO<C-R>=&ffs<CR>:<C-R>=&ff<CR><ESC>') +    execute('w! XXtt72') +    execute('bwipe XXEol') +    execute('set fileformats=mac,dos,unix') +    execute('e! XXUxDsMc') +    execute('w! XXtt81') +    execute('bwipe XXUxDsMc') +    execute('e! XXEol') +    feed('ggO<C-R>=&ffs<CR>:<C-R>=&ff<CR><ESC>') +    execute('w! XXtt82') +    execute('bwipe XXEol') +    -- Try with 'binary' set. +    execute('set fileformats=mac,unix,dos') +    execute('set binary') +    execute('e! XXUxDsMc') +    execute('w! XXtt91') +    execute('bwipe XXUxDsMc') +    execute('set fileformats=mac') +    execute('e! XXUxDsMc') +    execute('w! XXtt92') +    execute('bwipe XXUxDsMc') +    execute('set fileformats=dos') +    execute('e! XXUxDsMc') +    execute('w! XXtt93') + +    -- Append "END" to each file so that we can see what the last written +    -- char was. +    execute('set fileformat=unix nobin') +    feed('ggdGaEND<esc>') +    execute('w >>XXtt01') +    execute('w >>XXtt02') +    execute('w >>XXtt11') +    execute('w >>XXtt12') +    execute('w >>XXtt13') +    execute('w >>XXtt21') +    execute('w >>XXtt22') +    execute('w >>XXtt23') +    execute('w >>XXtt31') +    execute('w >>XXtt32') +    execute('w >>XXtt33') +    execute('w >>XXtt41') +    execute('w >>XXtt42') +    execute('w >>XXtt43') +    execute('w >>XXtt51') +    execute('w >>XXtt52') +    execute('w >>XXtt53') +    execute('w >>XXtt54') +    execute('w >>XXtt61') +    execute('w >>XXtt62') +    execute('w >>XXtt63') +    execute('w >>XXtt64') +    execute('w >>XXtt71') +    execute('w >>XXtt72') +    execute('w >>XXtt81') +    execute('w >>XXtt82') +    execute('w >>XXtt91') +    execute('w >>XXtt92') +    execute('w >>XXtt93') + +    -- Concatenate the results. +    -- Make fileformat of test.out the native fileformat. +    -- Add a newline at the end. +    execute('set binary') +    execute('e! test.out') +    execute('$r XXtt01') +    execute('$r XXtt02') +    feed('Go1<esc>') +    execute('$r XXtt11') +    execute('$r XXtt12') +    execute('$r XXtt13') +    feed('Go2<esc>') +    execute('$r XXtt21') +    execute('$r XXtt22') +    execute('$r XXtt23') +    feed('Go3<esc>') +    execute('$r XXtt31') +    execute('$r XXtt32') +    execute('$r XXtt33') +    feed('Go4<esc>') +    execute('$r XXtt41') +    execute('$r XXtt42') +    execute('$r XXtt43') +    feed('Go5<esc>') +    execute('$r XXtt51') +    execute('$r XXtt52') +    execute('$r XXtt53') +    execute('$r XXtt54') +    feed('Go6<esc>') +    execute('$r XXtt61') +    execute('$r XXtt62') +    execute('$r XXtt63') +    execute('$r XXtt64') +    feed('Go7<esc>') +    execute('$r XXtt71') +    execute('$r XXtt72') +    feed('Go8<esc>') +    execute('$r XXtt81') +    execute('$r XXtt82') +    feed('Go9<esc>') +    execute('$r XXtt91') +    execute('$r XXtt92') +    execute('$r XXtt93') +    feed('Go10<esc>') +    execute('$r XXUnix') +    execute('set nobinary ff&') + +    -- Assert buffer contents.  This has to be done manually as +    -- helpers.expect() calls helpers.dedent() which messes up the white space +    -- and carrige returns. +    eq( +      'unix\n'.. +      'unix\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'END\n'.. +      'mac\rmac\r\n'.. +      'END\n'.. +      '1\n'.. +      'unix\r\n'.. +      'unix\r\n'.. +      'END\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'END\n'.. +      'mac\rmac\r\r\n'.. +      'END\n'.. +      '2\n'.. +      'unix\n'.. +      'unix\n'.. +      '\rEND\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      '\rEND\n'.. +      'mac\rmac\rEND\n'.. +      '3\n'.. +      'unix\n'.. +      'unix\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'mac\rmac\r\n'.. +      'END\n'.. +      'unix\r\n'.. +      'unix\r\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'mac\rmac\r\r\n'.. +      'END\n'.. +      'unix\n'.. +      'unix\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'mac\rmac\rEND\n'.. +      '4\n'.. +      'unix\n'.. +      'unix\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'mac\rmac\r\n'.. +      'END\n'.. +      'unix\n'.. +      'unix\n'.. +      'mac\rmac\r\n'.. +      'END\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'mac\rmac\r\r\n'.. +      'END\n'.. +      '5\n'.. +      'unix\n'.. +      'unix\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'END\n'.. +      'unix\n'.. +      'unix\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'mac\rmac\r\n'.. +      'END\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'mac\rmac\rEND\n'.. +      'unix,mac:unix\n'.. +      'noeol\n'.. +      'END\n'.. +      '6\n'.. +      'unix\r\n'.. +      'unix\r\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'END\n'.. +      'dos,mac:dos\r\n'.. +      'unix\r\n'.. +      'unix\r\n'.. +      'mac\rmac\r\r\n'.. +      'END\n'.. +      'unix\r\n'.. +      'unix\r\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'mac\rmac\r\r\n'.. +      'END\n'.. +      'dos,mac:mac\rmac\rmac\rnoeol\rEND\n'.. +      '7\n'.. +      'unix\n'.. +      'unix\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'mac\rmac\r\n'.. +      'END\n'.. +      'unix,dos,mac:unix\n'.. +      'noeol\n'.. +      'END\n'.. +      '8\n'.. +      'unix\n'.. +      'unix\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'mac\rmac\r\n'.. +      'END\n'.. +      'mac,dos,unix:mac\rnoeol\rEND\n'.. +      '9\n'.. +      'unix\n'.. +      'unix\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'mac\rmac\rEND\n'.. +      'unix\n'.. +      'unix\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'mac\rmac\rEND\n'.. +      'unix\n'.. +      'unix\n'.. +      'dos\r\n'.. +      'dos\r\n'.. +      'mac\rmac\rEND\n'.. +      '10\n'.. +      'unix\n'.. +      'unix', +      helpers.curbuf_contents()) +  end) +end) | 
