Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Valgrind tests (was: Re: Zsh: [7] + 23074 suspended (tty output))

On Tue, 18 Sep 2018 at 17:55, Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx> wrote:
> Sebastian Gniazdowski wrote on Tue, 18 Sep 2018 07:21 +0200:
> > On Mon, 17 Sep 2018 at 16:50, Daniel Shahaf <d.s@xxxxxxxxxxxxxxxxxx> wrote:
> >
> > > Can you describe what changes would be involved?  Would the test
> > > suite remain as portable as it should be?

What's needed is currently only this +-2 patch. It makes passing
VALGRIND=1 to the tests' make run the tests through VATS/valgrind. It
creates a conditional variable VLGRND which has a value of "v" in such
case, making the tests go throguh vruntests.zsh and not runtests.zsh:

@@ -35,6 +35,7 @@ VPATH           = @srcdir@
 sdir            = @srcdir@
 sdir_top        = @top_srcdir@
 INSTALL         = @INSTALL@
+VLGRND                 = $(VALGRIND:1=v)


@@ -49,7 +50,7 @@ check test:
            do echo $$f; done`" \
         ZTST_srcdir="$(sdir)" \
         ZTST_exe=$(dir_top)/Src/zsh@EXEEXT@ \
-        $(dir_top)/Src/zsh@EXEEXT@ +Z -f $(sdir)/runtests.zsh; then \
+        $(dir_top)/Src/zsh@EXEEXT@ +Z -f $(sdir)/$(VLGRND)runtests.zsh; then \
         stat=0; \
        else \
         stat=1; \

> > The readme of this project is unnecessarily very long, the thing is
> > very simple, I need some time to approach this again with original
> > Test/ in mind.
> For avoidance of doubt, I am simply asking for information on the
> proposal.  I am not yet sold on it.

I hope the valgrind tests will be added. I've spend 2 days on
carefully building the errors database on OS X. I think that on Linux
there will be no such problem, as it seems that it's OS X that
embraces the fact that freed memory is actually never returned to the
OS (so it apparently does allocations here and there, without any code
to release the memory). The tests apparently reveal one memory leak

==52847== 79 (24 direct, 55 indirect) bytes in 1 blocks are definitely
lost in loss record 349 of 550
==52847==    at 0x10017B545: malloc (vg_replace_malloc.c:302)
==52847==    by 0x10004899E: zalloc (mem.c:966)
==52847==    by 0x10004316D: znewlinklist (linklist.c:120)
==52847==    by 0x10003989D: addfilelist (jobs.c:1297)
==52847==    by 0x100017AC0: getoutputfile (exec.c:4796)
==52847==    by 0x100078474: stringsubst (subst.c:254)
==52847==    by 0x100077E46: prefork (subst.c:142)
==52847==    by 0x10001A24F: execfuncdef (exec.c:2567)
==52847==    by 0x10001DC23: execcmd_exec (exec.c:3896)
==52847==    by 0x10001AAF6: execpline2 (exec.c:1927)
==52847==    by 0x100015938: execpline (exec.c:1658)
==52847==    by 0x1000150E2: execlist (exec.c:1413)

The full procedure to add the valgrind tests to Zsh is:
1. Apply the patch
2. Add files: vruntests.zsh, vtest.conf, zsh-valgrind-parse.cmd to the
Test subdirectory

After this running make VALGRIND=1 inside the Test subdirectory will
run the valgrind tests.

The files and additional information are available at:

Sebastian Gniazdowski
News: https://twitter.com/ZdharmaI
IRC: https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin
Blog: http://zdharma.org

Messages sorted by: Reverse Date, Date, Thread, Author