plt/util-test.ss
(module util-test mzscheme

  (require "test.ss"
           "util.ss")

  (provide util-tests)

  ;; FIXME: Two problems
  ;; 1 - This is not the way to test require/expose: if this fails, it
  ;;     prevents the tests from loading.
  ;; 2 - For whatever reason, it *does* fail when loaded via PLaneT.
  ;;     Still waiting for resolution on a bug report.
  (require/expose "check-test.ss" (good*))
  
  (define util-tests
    (test-suite
     "Util tests"
     (test-case
      "good* required from check-test.ss"
      (begin
        (check-true (procedure? good*))
        (check-equal? '(0 1) (procedure-arity good*))
        (check-true (good*))))

     (test-case
      "Test test-suite*"
      (let ((result
             (run-test
              (test-suite*
               "Test test-suite*"
               ("Test 1" (check = 1 1))
               ("Test 2" (check = 1 1) (check = 2 4))))))
        (check = (length result) 2)
        (check-true (test-success? (car result)))
        (check-true (test-failure? (cadr result)))))

     (test-case
      "Simple check-regexp test"
      (check-regexp-match "a*bba"
                           "aaaaaabba"))

     (test-case
      "check-regexp-match failure"
      (check-exn
       exn:test:check?
       (lambda ()
         (check-regexp-match* "a+bba" "aaaabbba"))))
     ))
  
  )