mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:7.4.1652
Problem: Old style test for fnamemodify().
Solution: Turn it into a new style test.
610cc1b9b3
This commit is contained in:
parent
e4d1bf7177
commit
62c0d99474
@ -69,6 +69,7 @@ static char *features[] = {
|
||||
|
||||
// clang-format off
|
||||
static int included_patches[] = {
|
||||
1652,
|
||||
1643,
|
||||
1641,
|
||||
1574,
|
||||
|
@ -1,87 +0,0 @@
|
||||
-- Test filename modifiers.
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear = helpers.clear
|
||||
local execute, expect = helpers.execute, helpers.expect
|
||||
|
||||
describe('filename modifiers', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
local tmpdir = helpers.nvim('eval', 'resolve("/tmp")')
|
||||
|
||||
execute('cd ' .. tmpdir)
|
||||
execute([=[set shell=sh]=])
|
||||
execute([=[set shellslash]=])
|
||||
execute([=[let tab="\t"]=])
|
||||
execute([=[command -nargs=1 Put :let expr=<q-args> | $put =expr.tab.strtrans(string(eval(expr)))]=])
|
||||
execute([=[let $HOME=fnamemodify('.', ':p:h:h:h')]=])
|
||||
execute([=[Put fnamemodify('.', ':p' )[-1:]]=])
|
||||
execute([=[Put fnamemodify('.', ':p:h' )[-1:]]=])
|
||||
execute([=[Put fnamemodify('test.out', ':p' )[-1:]]=])
|
||||
execute([=[Put fnamemodify('test.out', ':.' )]=])
|
||||
execute([=[Put fnamemodify('../testdir/a', ':.' )]=])
|
||||
execute([=[Put fnamemodify('test.out', ':~' )]=])
|
||||
execute([=[Put fnamemodify('../testdir/a', ':~' )]=])
|
||||
execute([=[Put fnamemodify('../testdir/a', ':t' )]=])
|
||||
execute([=[Put fnamemodify('.', ':p:t' )]=])
|
||||
execute([=[Put fnamemodify('test.out', ':p:t' )]=])
|
||||
execute([=[Put fnamemodify('test.out', ':p:e' )]=])
|
||||
execute([=[Put fnamemodify('test.out', ':p:t:e' )]=])
|
||||
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r' )]=])
|
||||
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r:r' )]=])
|
||||
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r:r:r' )]=])
|
||||
execute([=[Put substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '')]=])
|
||||
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e' )]=])
|
||||
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e' )]=])
|
||||
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:e' )]=])
|
||||
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:e:e')]=])
|
||||
execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:r' )]=])
|
||||
execute([=[Put fnamemodify('abc def', ':S' )]=])
|
||||
execute([=[Put fnamemodify('abc" "def', ':S' )]=])
|
||||
execute([=[Put fnamemodify('abc"%"def', ':S' )]=])
|
||||
execute([=[Put fnamemodify('abc'' ''def', ':S' )]=])
|
||||
execute([=[Put fnamemodify('abc''%''def', ':S' )]=])
|
||||
execute([=[Put fnamemodify("abc\ndef", ':S' )]=])
|
||||
execute([=[Put expand('%:r:S') == shellescape(expand('%:r'))]=])
|
||||
execute([=[new foo.txt]=])
|
||||
execute([=[Put join([expand('%:r'), expand('%:r:S'), expand('%')], ',')]=])
|
||||
execute([=[quit]=])
|
||||
execute([=[set shell=tcsh]=])
|
||||
execute([=[Put fnamemodify("abc\ndef", ':S' )]=])
|
||||
execute([=[1 delete _]=])
|
||||
|
||||
-- Assert buffer contents.
|
||||
expect([=[
|
||||
fnamemodify('.', ':p' )[-1:] '/'
|
||||
fnamemodify('.', ':p:h' )[-1:] 'p'
|
||||
fnamemodify('test.out', ':p' )[-1:] 't'
|
||||
fnamemodify('test.out', ':.' ) 'test.out'
|
||||
fnamemodify('../testdir/a', ':.' ) '../testdir/a'
|
||||
fnamemodify('test.out', ':~' ) 'test.out'
|
||||
fnamemodify('../testdir/a', ':~' ) '../testdir/a'
|
||||
fnamemodify('../testdir/a', ':t' ) 'a'
|
||||
fnamemodify('.', ':p:t' ) ''
|
||||
fnamemodify('test.out', ':p:t' ) 'test.out'
|
||||
fnamemodify('test.out', ':p:e' ) 'out'
|
||||
fnamemodify('test.out', ':p:t:e' ) 'out'
|
||||
fnamemodify('abc.fb2.tar.gz', ':r' ) 'abc.fb2.tar'
|
||||
fnamemodify('abc.fb2.tar.gz', ':r:r' ) 'abc.fb2'
|
||||
fnamemodify('abc.fb2.tar.gz', ':r:r:r' ) 'abc'
|
||||
substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '') ']=] .. tmpdir .. [=[/abc.fb2'
|
||||
fnamemodify('abc.fb2.tar.gz', ':e' ) 'gz'
|
||||
fnamemodify('abc.fb2.tar.gz', ':e:e' ) 'tar.gz'
|
||||
fnamemodify('abc.fb2.tar.gz', ':e:e:e' ) 'fb2.tar.gz'
|
||||
fnamemodify('abc.fb2.tar.gz', ':e:e:e:e') 'fb2.tar.gz'
|
||||
fnamemodify('abc.fb2.tar.gz', ':e:e:r' ) 'tar'
|
||||
fnamemodify('abc def', ':S' ) '''abc def'''
|
||||
fnamemodify('abc" "def', ':S' ) '''abc" "def'''
|
||||
fnamemodify('abc"%"def', ':S' ) '''abc"%"def'''
|
||||
fnamemodify('abc'' ''def', ':S' ) '''abc''\'''' ''\''''def'''
|
||||
fnamemodify('abc''%''def', ':S' ) '''abc''\''''%''\''''def'''
|
||||
fnamemodify("abc\ndef", ':S' ) '''abc^@def'''
|
||||
join([expand('%:r'), expand('%:r:S'), expand('%')], ',') 'foo,''foo'',foo.txt'
|
||||
expand('%:r:S') == shellescape(expand('%:r')) 1
|
||||
fnamemodify("abc\ndef", ':S' ) '''abc\^@def''']=])
|
||||
end)
|
||||
end)
|
64
test/functional/legacy/fnamemodify_spec.lua
Normal file
64
test/functional/legacy/fnamemodify_spec.lua
Normal file
@ -0,0 +1,64 @@
|
||||
-- Test filename modifiers.
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, source = helpers.clear, helpers.source
|
||||
local call, eq, nvim = helpers.call, helpers.eq, helpers.meths
|
||||
|
||||
local function expected_empty()
|
||||
eq({}, nvim.get_vvar('errors'))
|
||||
end
|
||||
|
||||
describe('filename modifiers', function()
|
||||
before_each(function()
|
||||
clear()
|
||||
|
||||
source([=[
|
||||
func Test_fnamemodify()
|
||||
let tmpdir = resolve('/tmp')
|
||||
execute 'cd '. tmpdir
|
||||
set shell=sh
|
||||
set shellslash
|
||||
let $HOME=fnamemodify('.', ':p:h:h:h')
|
||||
call assert_equal('/', fnamemodify('.', ':p')[-1:])
|
||||
call assert_equal('p', fnamemodify('.', ':p:h')[-1:])
|
||||
call assert_equal('t', fnamemodify('test.out', ':p')[-1:])
|
||||
call assert_equal('test.out', fnamemodify('test.out', ':.'))
|
||||
call assert_equal('../testdir/a', fnamemodify('../testdir/a', ':.'))
|
||||
call assert_equal('test.out', fnamemodify('test.out', ':~'))
|
||||
call assert_equal('../testdir/a', fnamemodify('../testdir/a', ':~'))
|
||||
call assert_equal('a', fnamemodify('../testdir/a', ':t'))
|
||||
call assert_equal('', fnamemodify('.', ':p:t'))
|
||||
call assert_equal('test.out', fnamemodify('test.out', ':p:t'))
|
||||
call assert_equal('out', fnamemodify('test.out', ':p:e'))
|
||||
call assert_equal('out', fnamemodify('test.out', ':p:t:e'))
|
||||
call assert_equal('abc.fb2.tar', fnamemodify('abc.fb2.tar.gz', ':r'))
|
||||
call assert_equal('abc.fb2', fnamemodify('abc.fb2.tar.gz', ':r:r'))
|
||||
call assert_equal('abc', fnamemodify('abc.fb2.tar.gz', ':r:r:r'))
|
||||
call assert_equal(tmpdir .'/abc.fb2', substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', ''))
|
||||
call assert_equal('gz', fnamemodify('abc.fb2.tar.gz', ':e'))
|
||||
call assert_equal('tar.gz', fnamemodify('abc.fb2.tar.gz', ':e:e'))
|
||||
call assert_equal('fb2.tar.gz', fnamemodify('abc.fb2.tar.gz', ':e:e:e'))
|
||||
call assert_equal('fb2.tar.gz', fnamemodify('abc.fb2.tar.gz', ':e:e:e:e'))
|
||||
call assert_equal('tar', fnamemodify('abc.fb2.tar.gz', ':e:e:r'))
|
||||
call assert_equal('''abc def''', fnamemodify('abc def', ':S'))
|
||||
call assert_equal('''abc" "def''', fnamemodify('abc" "def', ':S'))
|
||||
call assert_equal('''abc"%"def''', fnamemodify('abc"%"def', ':S'))
|
||||
call assert_equal('''abc''\'''' ''\''''def''', fnamemodify('abc'' ''def', ':S'))
|
||||
call assert_equal('''abc''\''''%''\''''def''', fnamemodify('abc''%''def', ':S'))
|
||||
new foo.txt
|
||||
call assert_equal(expand('%:r:S'), shellescape(expand('%:r')))
|
||||
call assert_equal('foo,''foo'',foo.txt', join([expand('%:r'), expand('%:r:S'), expand('%')], ','))
|
||||
quit
|
||||
|
||||
call assert_equal("'abc\ndef'", fnamemodify("abc\ndef", ':S'))
|
||||
set shell=tcsh
|
||||
call assert_equal("'abc\\\ndef'", fnamemodify("abc\ndef", ':S'))
|
||||
endfunc
|
||||
]=])
|
||||
end)
|
||||
|
||||
it('is working', function()
|
||||
call('Test_fnamemodify')
|
||||
expected_empty()
|
||||
end)
|
||||
end)
|
Loading…
Reference in New Issue
Block a user