GNU bug report logs -
#74030
[PATCH] srfi-64: Accept symbols as test group names.
Previous Next
Reported by: Tomas Volf <~@wolfsden.cz>
Date: Sat, 26 Oct 2024 16:08:01 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#74030: [PATCH] srfi-64: Accept symbols as test group names.
which was filed against the guile package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 74030 <at> debbugs.gnu.org.
--
74030: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=74030
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Tomas Volf <~@wolfsden.cz> skribis:
> The specification mandates a string, but with rationale suggesting symbols
> would be a more natural fit.
>
>> In some ways using symbols would be preferable. However, we want
>> human-readable names, and standard Scheme does not provide a way to include
>> spaces or mixed-case text in literal symbols.
>
> Add support for symbols as implementation extension.
>
> * module/srfi/srfi-64.scm (%cmp-group-name): New procedure.
> (test-end): Use it.
I added “for backwards compatibility with the reference implementation”
and credited Daniel for reporting the issue.
Applied, thanks!
Ludo’.
[Message part 3 (message/rfc822, inline)]
The specification mandates a string, but with rationale suggesting symbols
would be a more natural fit.
> In some ways using symbols would be preferable. However, we want
> human-readable names, and standard Scheme does not provide a way to include
> spaces or mixed-case text in literal symbols.
Add support for symbols as implementation extension.
* module/srfi/srfi-64.scm (%cmp-group-name): New procedure.
(test-end): Use it.
---
module/srfi/srfi-64.scm | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/module/srfi/srfi-64.scm b/module/srfi/srfi-64.scm
index 1f60a72e5..98fcef645 100644
--- a/module/srfi/srfi-64.scm
+++ b/module/srfi/srfi-64.scm
@@ -522,7 +522,10 @@ returning new test runner. Defaults to @code{test-runner-simple}.")
(1+ (group-executed-count group)))))))
(define* (test-begin suite-name #:optional count)
- "Enter a new test group."
+ "Enter a new test group.
+
+As implementation extension, in addition to strings, symbols are also
+supported as @var{suite-name}."
(let* ((r (test-runner-current))
(r install? (if r
(values r #f)
@@ -544,6 +547,14 @@ returning new test runner. Defaults to @code{test-runner-simple}.")
((test-runner-on-group-begin r) r suite-name count)))
+(define (%cmp-group-name a b)
+ (match (list a b)
+ (((? string?) (? string?))
+ (string=? a b))
+ (((? symbol?) (? symbol?))
+ (eq? a b))
+ (_ #f)))
+
(define* (test-end #:optional suite-name)
"Leave the current test group."
(let* ((r (test-runner-current))
@@ -551,7 +562,7 @@ returning new test runner. Defaults to @code{test-runner-simple}.")
(let ((begin-name (car (test-runner-group-stack r)))
(end-name suite-name))
- (when (and end-name (not (string=? begin-name end-name)))
+ (when (and end-name (not (%cmp-group-name begin-name end-name)))
((test-runner-on-bad-end-name r) r begin-name end-name)
(raise-exception (make-bad-end-name begin-name end-name))))
--
2.46.0
This bug report was last modified 205 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.