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