The test-suite semantics in rackunit are complex, under-specified, and 
quite brittle. I recommend avoiding them entirely and sticking entirely to 
test cases and test-begin.

On Monday, February 22, 2021 at 10:19:04 PM UTC-8 William J. Bowman wrote:

> Below is an example that behaves "correctly", as in all tests run and are
> counted as failured or errors correctly, in Racket 7.8, but which crashes 
> in
> Racket 8.
>
> > #lang racket
> > 
> > (require
> > rackunit
> > rackunit/log)
> > 
> > (define (suite1)
> > (test-suite
> > ""
> > (test-begin
> > (check-not-equal? (error "actual") (error "expected")))))
> > 
> > (define (suite2)
> > (test-suite
> > ""
> > (check-not-equal? (error "actual") (error "expected"))))
> > 
> > (module+ test
> > (require rackunit/text-ui)
> > 
> > ;; Correctly counts the tests as errors in 7.8 and 8.0
> > (check-pred
> > integer?
> > (run-tests (suite1)))
> > 
> > ;; Counts the tests as errors in 7.8, but crashes in 8.0
> > (check-pred
> > integer?
> > (run-tests (suite2)))
> >
> > ;; Gets run in 7.8, but not in 8.0
> > (check-equal? 0 0))
>
> This has something to do with when test-suite delays a test, which seems
> inconsistent across the Racket versions.
> I'm not sure whether the problem was some undefined behaviour in 
> test-suite or
> not.
>
> I'm a bit confused about the semantics of test-suites and tests, since the
> documentation claims a test (unlike a check) is delayed, yet test-case and
> test-begin do not delay tests, while test-suite does produce a delayed 
> suite of
> tests.
> However, test-begin DOES seem to delay a test in the context of a 
> test-suite.
>
> I'd appreciate any insight.
>
> --
> William J. Bowman
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/73510d26-7405-4c0a-a0e3-1b06f77f3576n%40googlegroups.com.

Reply via email to