From: Bram Moolenaar Date: Thu, 7 May 2020 16:43:44 +0000 (+0200) Subject: patch 8.2.0712: various code not fully tested X-Git-Tag: v8.2.0712 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0ff5dedf0f69e56320199db7a2aad46be2a1f9b7;p=vim patch 8.2.0712: various code not fully tested Problem: Various code not fully tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #6049) --- diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim index 02b658554..a8506a8f7 100644 --- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -570,6 +570,12 @@ func Test_tolower() " invalid memory. call tolower("\xC0\x80\xC0") call tolower("123\xC0\x80\xC0") + + " Test in latin1 encoding + let save_enc = &encoding + set encoding=latin1 + call assert_equal("abc", tolower("ABC")) + let &encoding = save_enc endfunc func Test_toupper() @@ -641,6 +647,12 @@ func Test_toupper() " invalid memory. call toupper("\xC0\x80\xC0") call toupper("123\xC0\x80\xC0") + + " Test in latin1 encoding + let save_enc = &encoding + set encoding=latin1 + call assert_equal("ABC", toupper("abc")) + let &encoding = save_enc endfunc func Test_tr() @@ -1160,6 +1172,10 @@ func Test_filewritable() call assert_equal(0, filewritable('doesnotexist')) + call mkdir('Xdir') + call assert_equal(2, filewritable('Xdir')) + call delete('Xdir', 'd') + call delete('Xfilewritable') bw! endfunc diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim index dec82885f..ce925d817 100644 --- a/src/testdir/test_options.vim +++ b/src/testdir/test_options.vim @@ -269,6 +269,7 @@ func Test_set_completion() " Expand terminal options. call feedkeys(":set t_A\\\"\", 'tx') call assert_equal('"set t_AB t_AF t_AL', @:) + call assert_fails('call feedkeys(":set =\\", "xt")', 'E474:') " Expand directories. call feedkeys(":set cdpath=./\\\"\", 'tx') diff --git a/src/testdir/test_system.vim b/src/testdir/test_system.vim index e69a04552..d59787389 100644 --- a/src/testdir/test_system.vim +++ b/src/testdir/test_system.vim @@ -143,3 +143,41 @@ func Test_system_with_shell_quote() call delete('Xdir with spaces', 'rf') endtry endfunc + +" Test for 'shellxquote' +func Test_Shellxquote() + CheckUnix + + let save_shell = &shell + let save_sxq = &shellxquote + let save_sxe = &shellxescape + + call writefile(['#!/bin/sh', 'echo "Cmd: [$*]" > Xlog'], 'Xtestshell') + call setfperm('Xtestshell', "r-x------") + set shell=./Xtestshell + + set shellxquote=\\" + call feedkeys(":!pwd\\", 'xt') + call assert_equal(['Cmd: [-c "pwd"]'], readfile('Xlog')) + + set shellxquote=( + call feedkeys(":!pwd\\", 'xt') + call assert_equal(['Cmd: [-c (pwd)]'], readfile('Xlog')) + + set shellxquote=\\"( + call feedkeys(":!pwd\\", 'xt') + call assert_equal(['Cmd: [-c "(pwd)"]'], readfile('Xlog')) + + set shellxescape=\"&<<()@^ + set shellxquote=( + call feedkeys(":!pwd\"&<<{}@^\\", 'xt') + call assert_equal(['Cmd: [-c (pwd^"^&^<^<{}^@^^)]'], readfile('Xlog')) + + let &shell = save_shell + let &shellxquote = save_sxq + let &shellxescape = save_sxe + call delete('Xtestshell') + call delete('Xlog') +endfunc + +" vim: shiftwidth=2 sts=2 expandtab diff --git a/src/testdir/test_termcodes.vim b/src/testdir/test_termcodes.vim index 13770c643..49262f529 100644 --- a/src/testdir/test_termcodes.vim +++ b/src/testdir/test_termcodes.vim @@ -1371,4 +1371,30 @@ func Test_cmdline_literal() set timeoutlen& endfunc +" Test for translation of special key codes (, , etc.) +func Test_Keycode_Tranlsation() + let keycodes = [ + \ ["", ""], + \ ["", ""], + \ ["", ""], + \ ["", ""], + \ ["", ""], + \ ["", ""], + \ ["", ""], + \ ["", ""], + \ ["", ""], + \ ["", ""], + \ ["", ""], + \ ["", ""], + \ ["", ""], + \ ["", ""], + \ ["", ""], + \ ["", ""]] + for [k1, k2] in keycodes + exe "nnoremap " .. k1 .. " 2wx" + call assert_true(maparg(k1, 'n', 0, 1).lhs == k2) + exe "nunmap " .. k1 + endfor +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index d63cc8b8c..f9ce53b40 100644 --- a/src/version.c +++ b/src/version.c @@ -746,6 +746,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 712, /**/ 711, /**/