bootstrap-sut

Thu May 08 11:48:01+0200 2025

Creative Commons LicenseCreative Commons LicenseCreative Commons License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

Table of contents
  1. test-running: pass
  2. test-result: pass
  3. test-failed: pass
  4. test-unbound-variable: pass
  5. test-failed-result: pass
  6. test-suite: pass
  7. test-⊨: pass
  8. test-⊭: pass
  9. test-should-signal: pass

Tests summary

scheme code
((ran 9) (failed 0))

This test suite drove the implementation of the unittest framework itself.

../unittest.scm

1. test-running: pass

hello

scheme code
(define (test-running tc t r)
  (⊦= '() (unittest/testcase-log t))
  (unittest/testcase-run t r wasrun-sut)
  (⊦= '(teardown test-method setup) (unittest/testcase-log t)))

2. test-result: pass

scheme code
(define (test-result tc t r)
  (unittest/testcase-run t r wasrun-sut)
  (⊦= '((ran 1) (failed 0)) (unittest/result-summary r)))

3. test-failed: pass

scheme code
(define (test-failed tc _ r)
  (lettest
    ((t 'test-broken))
    (unittest/testcase-run t r wasrun-sut)
    (⊦= '((ran 1) (failed 1 (test-broken (expected useless) (got _))))
          (unittest/result-summary r))))

4. test-unbound-variable: pass

scheme code
(define (test-unbound-variable tc _ r)
  (lettest
    ((t 'test-unbound-variable))
    (unittest/testcase-run t r wasrun-sut)
    (⊦= '((ran 1)
            (failed
              1
              (test-unbound-variable
                "\nError: unbound variable: unbound-v\n")))
          (unittest/result-summary r))))

5. test-failed-result: pass

scheme code
(define (test-failed-result tc _ r)
  (unittest/result-started! r)
  (unittest/result-failed! r 'no-reason)
  (⊦= '((ran 1) (failed 1 no-reason)) (unittest/result-summary r)))

6. test-suite: pass

scheme code
(define (test-suite tc _ r)
  (letsuite
    ((suite '(test-running test-failed)))
    (unittest/testsuite-run suite r bootstrap-sut)
    (⊦= '((ran 2) (failed 0)) (unittest/result-summary r))))

7. test-⊨: pass

scheme code
(define (test-⊨ tc _ _) (⊨ #t))

8. test-⊭: pass

scheme code
(define (test-⊭ tc _ _) (⊭ #f))

9. test-should-signal: pass

scheme code
(define (test-should-signal tc _ _)
  (⊦⧳ ((exn)) (signal (condition '(exn message "useless"))))
  (⊦⧳ ((exn-a)) (signal (condition '(exn-a message "useless"))))
  (⊦⧳ ((exn) (exn-a)) (signal (condition '(exn-a message "useless"))))
  (condition-case
    (⊦⧳ ((exn)) (signal (condition '(exn-a message "useless"))))
    ((exn-a) (void)))
  (condition-case (⊦⧳ ((exn)) (signal 99)) (() (void)))
  (⊦⧳ () 99))