bug#72378: srfi-64: top-level test-group does not work

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 test-group is defined as equivalent to:
>
>     (if (not (test-to-skip% suite-name))
>       (dynamic-wind
>         (lambda () (test-begin suite-name))
>         (lambda () decl-or-expr ...)
>         (lambda () (test-end suite-name))))
>
> `test-to-skip%' is not defined anywhere (great), however in the text we have
> this sentence:
>
>> However, the entire group is skipped if it matched an active test-skip
> Since active skip list is mandated to be a property of test runner, in case the
> test runner does not exist yet, there cannot be active skip list.  Hence the
> group should run.  However:
>
>     (use-modules (srfi srfi-64))
>     (test-group "x"
>       #t)
>
> Leads to:
>
>     Backtrace:
>     In ice-9/boot-9.scm:
>       1752:10  6 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
>     In unknown file:
>                5 (apply-smob/0 #<thunk 7fc490169300>)
>     In ice-9/boot-9.scm:
>         724:2  4 (call-with-prompt _ _ #<procedure default-prompt-handler (k proc)>)
>     In ice-9/eval.scm:
>         619:8  3 (_ #(#(#<directory (guile-user) 7fc49016cc80>)))
>     In ice-9/boot-9.scm:
>        2836:4  2 (save-module-excursion _)
>       4388:12  1 (_)
>     In /home/wolf/src/guile-wolfsden/tests/srfi-64/test-group-top-level.srfi64test:
>           8:0  0 (_)
>
>     /home/wolf/src/guile-wolfsden/tests/srfi-64/test-group-top-level.srfi64test:8:0: In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #f
>
> Have a nice day
> Tomas Volf
>
>
I don't know how to fix this in the reference implementation that Guile uses, and don't care to find out because (as you seem to have noticed) the implementation is somewhat over-complicated in many parts.

But in any case, my implementation isn't affected by this bug, and your example works as intended with it.

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