On Sat, Feb 22, 2020 at 09:21:56PM +0100, Bram Moolenaar wrote:
>
> James McCoy wrote:
>
> > On Sat, Feb 22, 2020 at 9:02 AM Bram Moolenaar <
Br...@moolenaar.net> wrote:
> > >
> > > Dominique wrote:
> > >
> > > > At
https://buildd.debian.org/status/package.php?p=vim
> > > > I noticed this test failure on hppa architecture:
> > > >
> > > > Caught exception in Test_terminal_special_chars(): Vim(bwipeout):E89:
> > > > No write since last change for buffer 132 (add ! to override) @
> > > > function RunTheTest[40]..Test_terminal_special_chars, line 11
> > > >
> > > > Line 11 in Test_terminal_special_chars() is 'bwipe'.
> > > > It looks like we should call 'bwipe!' (with exclamation mark)
> > > > in Test_terminal_special_chars(). Although I don't
> > > > understand why the current buffer would have
> > > > change in this test.
> > >
> > > After "term ls" finishes it should be possible to wipe out the buffer.
> > > You might have found an actual problem, adding "!" would be ignoring
> > > that problem.
> >
> > I can reproduce this on the hppa porterbox. Running the test on its
> > own is fine. It's only when running the entire file that the error
> > shows up. I'll see if I can narrow down what's causing the problem.
>
> I appreciate it. I can't reproduce. I thought of something like
> 'fileformat' making the buffer marked as changed, but since this is also
> a kind of Unix it's probably something else.
Trimming test_terminal.vim down to just Test_terminal_shell_option() and
Test_terminal_special_chars() reproduces the problem. Switching the
order of those tests "fixes" the problem, although I see no reason why
there should be any interaction.
I added some debugging and it seems that, when the test fails, the
terminal job has not finished yet.
This change seems to make the test reliably pass.
diff --git i/src/testdir/test_terminal.vim w/src/testdir/test_terminal.vim
index 64bc7db1e..2e482b278 100644
--- i/src/testdir/test_terminal.vim
+++ w/src/testdir/test_terminal.vim
@@ -781,7 +781,7 @@ func Test_terminal_special_chars()
call writefile(['x'], 'Xdir with spaces/quoted"file')
term ls Xdir\ with\ spaces/quoted\"file
call WaitForAssert({-> assert_match('quoted"file', term_getline('', 1))})
- call term_wait('')
+ call WaitForAssert({-> assert_match('finish', term_getstatus(bufnr()))})
call delete('Xdir with spaces', 'rf')
bwipe
While I've got the environment setup, I'll take a look at some of the
other test failures on that system (and with a more recent Vim build).
Cheers,
--
James
GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7 2D23 DFE6 91AE 331B A3DB