[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#72374: srfi-64: test-apply does not accept convenience specifiers
From: |
Taylan Kammer |
Subject: |
bug#72374: srfi-64: test-apply does not accept convenience specifiers |
Date: |
Wed, 2 Oct 2024 00:17:01 +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 specification says the following regarding the test-apply:
>
>> If one or more specifiers are listed then only tests matching the specifiers
>> are executed.
> The specifiers are defined in `Test specifiers' section:
>
>> [..] For convenience, a specifier may also be a non-procedure value, which is
>> coerced to a specifier procedure, as described below for count and name.
> That means that following should work:
>
> (use-modules (srfi srfi-64))
> (test-apply 1 (λ () (test-assert #t)))
>
> However it does not:
>
> Backtrace:
> In ice-9/boot-9.scm:
> 1752:10 12 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
> In unknown file:
> 11 (apply-smob/0 #<thunk 7fd0803c7300>)
> In ice-9/boot-9.scm:
> 724:2 10 (call-with-prompt _ _ #<procedure default-prompt-handler (k
> proc)>)
> In ice-9/eval.scm:
> 619:8 9 (_ #(#(#<directory (guile-user) 7fd0803cac80>)))
> In ice-9/boot-9.scm:
> 2836:4 8 (save-module-excursion _)
> 4388:12 7 (_)
> In srfi/srfi-64/testing.scm:
> 947:34 6 (test-apply 1 #<procedure 7fd074b30108 at
> /home/wolf/src/guile-wolfsden/tests…>)
> 944:21 5 (test-apply _ #<procedure 7fd074b30108 at
> /home/wolf/src/guile-wolfsden/tests…>)
> 688:12 4 (_)
> 648:2 3 (%test-on-test-begin #<test-runner pass-count: 0 fail-count:
> 0 xpass-count: 0…>)
> 266:21 2 (%test-should-execute #<test-runner pass-count: 0
> fail-count: 0 xpass-count: …>)
> 257:17 1 (%test-any-specifier-matches (1) #<test-runner pass-count: 0
> fail-count: 0 xp…>)
> 257:17 0 (%test-any-specifier-matches #<test-runner pass-count: 0
> fail-count: 0 xpass…> …)
>
> srfi/srfi-64/testing.scm:257:17: In procedure %test-any-specifier-matches:
> Wrong type to apply: 1
>
> The string variant is also not supported, as in:
>
> (use-modules (srfi srfi-64))
> (test-apply "t-a" (λ () (test-assert #t)))
>
> Resulting in:
>
> [..]
> srfi/srfi-64/testing.scm:257:17: In procedure %test-any-specifier-matches:
> Wrong type to apply: "t-a"
>
> Have a nice day
> Tomas Volf
>
Looks like a bug. Fixed in my implementation via this commit:
https://codeberg.org/taylan/scheme-srfis/commit/c14388e475dfe6a20cdd090d397813868dee0137
An equivalent fix shouldn't be *too* difficult to implement in the upstream
implementation, but I'm not touching the test-apply implementation in there
because it's demonic. :-)
If someone wants to try it though, what's called `make-pred` in my code is
called `%test-as-specifier` in the upstream code, and just like in my fix it
just needs to be applied to the specifiers at some point to make sure they're
all procedures.
- Taylan
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#72374: srfi-64: test-apply does not accept convenience specifiers,
Taylan Kammer <=