bug#72383: srfi-64: test-runner-reset clobbers the run list

Tomas Volf <[email protected]>
Newsgroups gmane.lisp.guile.bugs
Message-ID <ZqlEX8DC5LzMYDxL@ws>
Hello,

I think I found a bug in (srfi srfi-64) module shipped with GNU Guile.

Test runner is specified as:

> A test-runner is an object that runs a test-suite, and manages the state. The
> test group path, and the sets skip and expected-fail specifiers are part of
> the test-runner. A test-runner will also typically accumulate statistics about
> executed tests.

Based on this description, run list is *not* supposed to be part of the test
runner state, therefore test-runner-reset should not touch it.  However that
does not seem to be the case:

    (use-modules (srfi srfi-64))
    (test-apply (test-match-name "t-a")
                (λ ()
                  (test-begin "x")
                  (test-assert "t-a" (pk 't-a))
                  (test-assert "t-b" (pk 't-b))

                  (test-runner-reset (test-runner-current))

                  (test-begin "x")
                  (test-assert "t-a" (pk 't-a))
                  (test-assert "t-b" (pk 't-b))))

Prints:

    %%%% Starting test x  (Writing full log to "x.log")

    ;;; (t-a)
    %%%% Starting test x  (Writing full log to "x.log")

    ;;; (t-a)

    ;;; (t-b)

Notice that in the second part, t-b is executed despite not supposed to be on
the run list.

Have a nice day
Tomas Volf
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.