* bug#72383: srfi-64: test-runner-reset clobbers the run list
@ 2024-07-30 19:51 Tomas Volf
2024-10-01 23:35 ` Taylan Kammer
0 siblings, 1 reply; 2+ messages in thread
From: Tomas Volf @ 2024-07-30 19:51 UTC (permalink / raw)
To: 72383
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
^ permalink raw reply [flat|nested] 2+ messages in thread
* bug#72383: srfi-64: test-runner-reset clobbers the run list
2024-07-30 19:51 bug#72383: srfi-64: test-runner-reset clobbers the run list Tomas Volf
@ 2024-10-01 23:35 ` Taylan Kammer
0 siblings, 0 replies; 2+ messages in thread
From: Taylan Kammer @ 2024-10-01 23:35 UTC (permalink / raw)
To: Tomas Volf, 72383
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.
>
> 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
>
>
I agree. The run-list is an implementation detail that only exists for test-apply, isn't used anywhere else, isn't exposed to the user, and is never mentioned in the spec. It shouldn't be possible for the user to ever affect it directly.
I've fixed this in my implementation of SRFI-64 as follows:
https://codeberg.org/taylan/scheme-srfis/commit/ec07393f809edd249748a884641fb2e63292da79
- Taylan
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-10-01 23:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-30 19:51 bug#72383: srfi-64: test-runner-reset clobbers the run list Tomas Volf
2024-10-01 23:35 ` Taylan Kammer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).