aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/testdir/Makefile1
-rw-r--r--src/nvim/testdir/test30.in230
-rw-r--r--src/nvim/testdir/test30.ok130
-rw-r--r--test/functional/legacy/030_fileformats_spec.lua375
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)