Sha256: 5c948673cc726d020ed0915c2c37608fc3385b53be1b6e0e277997c1b2e5b9b9

Contents?: true

Size: 1.87 KB

Versions: 5

Compression:

Stored size: 1.87 KB

Contents

(assign show-failed-only t)
(assign all-tests nil)

(def register-test (test)
  ; register a test to be run later by 'run-all-tests
  (push test all-tests))

(def run-all-tests (verbose)
  ; runs all tests that have been registered with 'register-test
  (with (passed 0 failed 0)
    (with (f-pass (fn nil (assign passed (+ 1 passed)))
           f-fail (fn nil (assign failed (+ 1 failed))))
      (run-tests `(suite "all tests" ,@all-tests) f-pass f-fail verbose)
      (p "passed: " passed)
      (p "failed: " failed)
      (/ passed (+ passed failed)))))

(def run-tests (tests passf failf verbose)
  (execute-test "" tests passf failf verbose))

(def execute-test (desc test passf failf verbose)
  (if (eq? 'suite (car test))
      (execute-tests (+ desc " - " (cadr test)) (cddr test) passf failf verbose)
      (!eq? 'comment (car test))
      (execute-single-test desc test passf failf verbose)))

(def execute-single-test (desc test passf failf verbose)
  (if verbose (p desc " - " (car test)))
  (with (expected (nth 2 test) result (eval (nth 1 test)))
        (if (iso result expected)
            (passf)
            (do (p desc " - " (car test) " - FAILED:
   running  " (pp (nth 1 test)) ",
   expected " (inspect expected) ",
   got      " (inspect result) "
")
                (failf)))))

(def execute-tests (desc tests passf failf verbose)
  (execute-test desc
                (car tests)
                passf
                failf
                verbose)
  (if (cdr tests)
      (execute-tests desc
                     (cdr tests)
                     passf
                     failf
                     verbose)))

(mac examples-for (name . examples)
  (let suite-name "examples for ~(pp name)"
    (let plain-examples (collect (fn (x) (isa 'string (car x))) examples)
      `(do (register-test '(suite ,suite-name ,@plain-examples))
           (dox-add-examples ',name ',plain-examples)))))

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
nydp-0.3.0 lib/lisp/core-050-test-runner.nydp
nydp-0.2.6 lib/lisp/core-050-test-runner.nydp
nydp-0.2.5 lib/lisp/core-050-test-runner.nydp
nydp-0.2.3 lib/lisp/core-050-test-runner.nydp
nydp-0.2.2 lib/lisp/core-050-test-runner.nydp