Patch patch 9.0.1679: Cleanup Tests from leftover files

37 views
Skip to first unread message

Christian Brabandt

unread,
Aug 8, 2023, 3:55:09 PM8/8/23
to vim...@googlegroups.com
patch 9.0.1679: Cleanup Tests from leftover files

Commit: https://github.com/vim/vim/commit/84bc00e9b52b1174888f2f696f8b628a83c49988
Author: Christian Brabandt <c...@256bit.org>
Date: Thu Jul 13 11:45:54 2023 +0200

patch 9.0.1679: Cleanup Tests from leftover files

Problem: Tests may leave leftover files around
Solution: Clean up tests and remove files

There were a few failures in 'linux (huge, gcc, testgui, true, true)'
e.g. here: https://github.com/vim/vim/actions/runs/5497376153/jobs/10018060156

,----
| Error detected while processing command line..script /home/runner/work/vim/vim/src/testdir/runtest.vim[585]..function RunTheTest[54]..Test_lvimgrep_crash[16]..TestTimeout[12]..VimLeavePre Autocommands for "*"..function EarlyExit[7]..FinishTesting:
| line 70:
| E445: Other window contains changes
| E937: Attempt to delete a buffer that is in use: Xtest_stable_xxd.txt
| E937: Attempt to delete a buffer that is in use: Xtest_stable_xxd.txt
| E937: Attempt to delete a buffer that is in use: Xtest_stable_xxd.txtmalloc(): unsorted double linked list corrupted
`----

Which is puzzling, because the Xtest_stable_xxd file should have been
long gone after test_crypt.vim is run (and definitely no longer be
staying around in test_quickfix.vim).

So try to clean up properly after a test script is run, just in case any
X<file> is still around. During testing, a found a few leftover files,
which I also fixed in the relevant test-file.

Unfortunately, the test workflow 'linux (huge, gcc, testgui, true,
true)' now seems to fail with 'E1230: Encryption: sodium_mlock()' in
test_crypt.vim. Hopefully this is only temporary.

diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim
index e2bc28d37..0d79bef3b 100644
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -411,6 +411,24 @@ func RunTheTest(test)
endif
endfunc

+function Delete_Xtest_Files()
+ for file in glob('X*', v:false, v:true)
+ if file ==? 'XfakeHOME'
+ " Clean up files created by setup.vim
+ call delete('XfakeHOME', 'rf')
+ continue
+ endif
+ " call add(v:errors, file .. " exists when it shouldn't, trying to delete it!")
+ call delete(file)
+ if !empty(glob(file, v:false, v:true))
+ " call add(v:errors, file .. " still exists after trying to delete it!")
+ if has('unix')
+ call system('rm -rf ' .. file)
+ endif
+ endif
+ endfor
+endfunc
+
func AfterTheTest(func_name)
if len(v:errors) > 0
if match(s:may_fail_list, '^' .. a:func_name) >= 0
@@ -439,13 +457,11 @@ endfunc
" This function can be called by a test if it wants to abort testing.
func FinishTesting()
call AfterTheTest('')
+ call Delete_Xtest_Files()

" Don't write viminfo on exit.
set viminfo=

- " Clean up files created by setup.vim
- call delete('XfakeHOME', 'rf')
-
if s:fail == 0 && s:fail_expected == 0
" Success, create the .res file so that make knows it's done.
exe 'split ' . fnamemodify(g:testname, ':r') . '.res'
diff --git a/src/testdir/test_mksession.vim b/src/testdir/test_mksession.vim
index aa291821e..5485e144f 100644
--- a/src/testdir/test_mksession.vim
+++ b/src/testdir/test_mksession.vim
@@ -973,6 +973,7 @@ func Test_mksession_foldopt()
close
%bwipe
set sessionoptions&
+ call delete('Xtest_mks.out')
endfunc

" Test for mksession with "help" but not "options" in 'sessionoptions'
@@ -1105,6 +1106,7 @@ func Test_mksession_shortmess_with_A()
set shortmess&
set sessionoptions&
call delete('Xtestsession')
+ call delete('Xtestfile')
endfunc

" Test for mksession with 'compatible' option
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index da263f455..bb6fca3ac 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -309,6 +309,7 @@ func Test_terminal_rename_buffer()
call assert_equal('bar', bufname())
call assert_match('bar.*finished', execute('ls'))
exe 'bwipe! ' .. buf
+ call delete('Xtext')
endfunc

func s:Nasty_exit_cb(job, st)
@@ -1045,6 +1046,8 @@ func Test_terminal_redir_file()
call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
bwipe
endif
+
+ call delete('Xtext')
endfunc

func TerminalTmap(remap)
diff --git a/src/version.c b/src/version.c
index e5b484485..f2e714ca4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -695,6 +695,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1679,
/**/
1678,
/**/

Christian Brabandt

unread,
Aug 8, 2023, 3:57:17 PM8/8/23
to vim...@googlegroups.com

On Di, 08 Aug 2023, Christian Brabandt wrote:

> patch 9.0.1679: Cleanup Tests from leftover files

Sorry, trying to get the patch mails working.

While this seems to fix the recent CI test failures about the file
Xcrypt_sodium_v2.txt now I am seeing sodium_mlock() failures. I don't
know yet why this happens :(

Best,
Christian
--
Hat man eine kleine Bitte: muß man mit dem Allgemeinen anfangen, man
habe was zu bitten, weil der andere dann froh ist, daß es nichts
Größeres ist. Eine große Bitte aber tue man ohne dies.
-- Jean Paul

Yegappan Lakshmanan

unread,
Aug 9, 2023, 1:18:18 AM8/9/23
to vim...@googlegroups.com
Hi,

On Tue, Aug 8, 2023 at 12:57 PM Christian Brabandt <cbl...@256bit.org> wrote:
>
>
> On Di, 08 Aug 2023, Christian Brabandt wrote:
>
> > patch 9.0.1679: Cleanup Tests from leftover files
>
> Sorry, trying to get the patch mails working.
>
> While this seems to fix the recent CI test failures about the file
> Xcrypt_sodium_v2.txt now I am seeing sodium_mlock() failures. I don't
> know yet why this happens :(
>

The git log commit message for this patch has a lot of details. Bram
used to mention
a short description of the problem and the solution in the commit log.
Should we follow
that model going forward?

Regards,
Yegappan

Dragan Simic

unread,
Aug 9, 2023, 2:05:30 AM8/9/23
to vim...@vim.org
I also noticed that, as a newcomer to the vim development. Quite
frankly, I think that having more verbose commit messages is much
better. Bram's terse style is a bit strange to me.

This is just my opinion, of course, FWIW.

Christian Brabandt

unread,
Aug 9, 2023, 4:39:05 AM8/9/23
to vim...@googlegroups.com
I certainly don't want to make any rules here. I liked the way how Bram
was able to make short Problem and Solution Descriptions, but at least
personally I think the Vim project can benefit from better commit
messages that go into a bit more detail trying to explain the reasoning
for why certain changes were made. I like how the git project does it.

But that is only my personal preference.

Best,
Christian
--
Wer ist's, der Kohl vom Hocker lockt,
auf dem er nur noch locker hockt?
Reply all
Reply to author
Forward
0 new messages