bug#72380: srfi-64: test-end does not uninstall runner if on-final was modified

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 for test-end says:
>
>> Additionally, if the matching test-begin installed a new test-runner, then the
>> test-end will uninstall it, after reporting the accumulated test results in an
>> implementation-defined manner.
> However in following example it fails to do so:
>
>     (use-modules (srfi srfi-64))
>
>     (pk (eq? #f (test-runner-current)))
>     (test-begin "x")
>     (test-runner-on-final! (test-runner-current) (λ (_) #t))
>     (test-end)
>     (pk (eq? #f (test-runner-current)))
>
> Resulting in:
>
>     ;;; (#t)
>     %%%% Starting test x  (Writing full log to "x.log")
>
>     ;;; (#f)
>
> I see no provision in the specification that would justify this.
>
> Have a nice day
> Tomas Volf
>
>
Don't know how to most easily fix this upstream due to the convoluted code, but works fine with my implementation of SRFI-64.

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