bug#72367: srfi-64: nested group not counted as one test

Taylan Kammer <[email protected]>
Newsgroups gmane.lisp.guile.bugs
Message-ID <[email protected]>
On 30.07.2024 21:51, Tomas Volf wrote:
> Hello,
>
> I think I found a bug in (srfi srfi-64) module shipped with GNU Guile.
>
> The specification says the following about the count argument to the test-begin
> form:
>
>> The optional count must match the number of test-cases executed by this
>> group. (Nested test groups count as a single test case for this count.)
> Thus I believe that following should *not* call on-bad-count-function.
>
>     (use-modules (srfi srfi-64))
>     (let ((r (test-runner-null)))
>       (test-runner-current r)
>       (test-runner-on-bad-count! r (λ (runner actual-count expected-count)
>                                      (pk (test-runner-group-stack runner))
>                                      (pk actual-count expected-count)))
>       (test-begin "x" 1)
>       (test-begin "y" 3)
>       (test-assert #t)
>       (test-assert #t)
>       (test-assert #t)
>       (test-end)
>       (test-end))
>
> However as we can see it does:
>
>     ;;; (("x"))
>
>     ;;; (3 1)
>
> Have a nice day
> Tomas Volf

Looks like a bug indeed. I believe I was able to fix it in my implementation with this commit:

    https://codeberg.org/taylan/scheme-srfis/commit/c49e367fbf292c6ee66ff435c7daa1f4ae5a47fa

An equivalent fix could be applied to the upstream reference implementation / current Guile implementation.

- Taylan
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.