bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Taylan Kammer
Subject: bug#72378: srfi-64: top-level test-group does not work
Date: Wed, 2 Oct 2024 00:25:40 +0200
User-agent: Mozilla Thunderbird

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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]