# HG changeset patch # User Christian Brabandt # Date 1487854805 -3600 # Node ID 2cc7e86bdadad2154b20ea28023a797fb8ccca9b # Parent fadad6b4cb18f0dbfd9864fdd6b06ac9a52e68b9 patch 8.0.0350: not enough test coverage for Perl commit https://github.com/vim/vim/commit/ae177b716626c8d517b7c6c7d77f8b1aec6ba5f9 Author: Bram Moolenaar Date: Thu Feb 23 13:45:57 2017 +0100 patch 8.0.0350: not enough test coverage for Perl Problem: Not enough test coverage for Perl. Solution: Add more Perl tests. (Dominique Perl, closes https://github.com/vim/vim/issues/1500) diff --git a/src/testdir/test_perl.vim b/src/testdir/test_perl.vim --- a/src/testdir/test_perl.vim +++ b/src/testdir/test_perl.vim @@ -26,7 +26,107 @@ EOF call assert_equal('abc/def/', getline('$')) endfunc -fu catch_peval(expr) +func Test_buffer_Delete() + new + call setline(1, ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']) + perl $curbuf->Delete(7) + perl $curbuf->Delete(2, 5) + perl $curbuf->Delete(10) + call assert_equal(['a', 'f', 'h'], getline(1, '$')) + bwipe! +endfunc + +func Test_buffer_Append() + new + perl $curbuf->Append(1, '1') + perl $curbuf->Append(2, '2', '3', '4') + perl @l = ('5' ..'7') + perl $curbuf->Append(0, @l) + call assert_equal(['5', '6', '7', '', '1', '2', '3', '4'], getline(1, '$')) + bwipe! +endfunc + +func Test_buffer_Set() + new + call setline(1, ['1', '2', '3', '4', '5']) + perl $curbuf->Set(2, 'a', 'b', 'c') + perl $curbuf->Set(4, 'A', 'B', 'C') + call assert_equal(['1', 'a', 'b', 'A', 'B'], getline(1, '$')) + bwipe! +endfunc + +func Test_buffer_Get() + new + call setline(1, ['1', '2', '3', '4']) + call assert_equal('2:3', perleval('join(":", $curbuf->Get(2, 3))')) + bwipe! +endfunc + +func Test_buffer_Count() + new + call setline(1, ['a', 'b', 'c']) + call assert_equal(3, perleval('$curbuf->Count()')) + bwipe! +endfunc + +func Test_buffer_Name() + new + call assert_equal('', perleval('$curbuf->Name()')) + bwipe! + new Xfoo + call assert_equal('Xfoo', perleval('$curbuf->Name()')) + bwipe! +endfunc + +func Test_buffer_Number() + call assert_equal(bufnr('%'), perleval('$curbuf->Number()')) +endfunc + +func Test_window_Cursor() + new + call setline(1, ['line1', 'line2']) + perl $curwin->Cursor(2, 3) + call assert_equal('2:3', perleval('join(":", $curwin->Cursor())')) + " Col is numbered from 0 in Perl, and from 1 in Vim script. + call assert_equal([0, 2, 4, 0], getpos('.')) + bwipe! +endfunc + +func Test_window_SetHeight() + new + perl $curwin->SetHeight(2) + call assert_equal(2, winheight(0)) + bwipe! +endfunc + +func Test_VIM_Windows() + new + " VIM::Windows() without argument in scalar and list context. + perl $winnr = VIM::Windows() + perl @winlist = VIM::Windows() + perl $curbuf->Append(0, $winnr, scalar(@winlist)) + call assert_equal(['2', '2', ''], getline(1, '$')) + + " VIM::Windows() with window number argument. + perl VIM::Windows(VIM::Eval('winnr()'))->Buffer()->Set(1, 'bar') + call assert_equal('bar', getline(1)) + bwipe! +endfunc + +func Test_VIM_Buffers() + new Xbar + " VIM::Buffers() without argument in scalar and list context. + perl $nbuf = VIM::Buffers() + perl @buflist = VIM::Buffers() + + " VIM::Buffers() with argument. + perl $mybuf = (VIM::Buffers('Xbar'))[0] + perl $mybuf->Append(0, $nbuf, scalar(@buflist)) + call assert_equal(['2', '2', ''], getline(1, '$')) + bwipe! +endfunc + +func catch_peval(expr) try call perleval(a:expr) catch @@ -36,7 +136,7 @@ fu catch_peval(expr) return '' endfunc -function Test_perleval() +func Test_perleval() call assert_false(perleval('undef')) " scalar @@ -75,7 +175,7 @@ function Test_perleval() call assert_true(perleval('\\0') =~ 'SCALAR(0x\x\+)') endfunc -function Test_perldo() +func Test_perldo() sp __TEST__ exe 'read ' g:testname perldo s/perl/vieux_chameau/g @@ -99,7 +199,7 @@ function Test_perldo() bwipe! endfunc -function Test_VIM_package() +func Test_VIM_package() perl VIM::DoCommand('let l:var = "foo"') call assert_equal(l:var, 'foo') @@ -108,7 +208,7 @@ function Test_VIM_package() call assert_true(&et) endfunc -function Test_stdio() +func Test_stdio() redir =>l:out perl <