git » blacktide.git » master » tree

[master] / test / com / tailrecursion / test_runner.clj

(ns com.tailrecursion.test-runner
  "Run semantic and generative suites; fail the process on any failing check."
  (:require [clojure.test :as test]))

(def suites
  '[com.tailrecursion.nanopass.language-test
    com.tailrecursion.nanopass.pass-test
    com.tailrecursion.blacktide.machine-test
    com.tailrecursion.blacktide.backend-test
    com.tailrecursion.blacktide.numeric-test
    com.tailrecursion.blacktide.generated-test
    com.tailrecursion.blacktide.aot-test
    com.tailrecursion.blacktide.package-test
    com.tailrecursion.blacktide.graph-test
    com.tailrecursion.blacktide.source-test
    com.tailrecursion.blacktide.subset-test
    com.tailrecursion.blacktide.collections-test
    com.tailrecursion.blacktide.assignment-test
    com.tailrecursion.blacktide.control-test
    com.tailrecursion.blacktide.jumps-test
    com.tailrecursion.blacktide.jvm-test
    com.tailrecursion.blacktide.loops-test
    com.tailrecursion.blacktide.source-loops-test
    com.tailrecursion.blacktide.source-values-test
    com.tailrecursion.blacktide.case-test
    com.tailrecursion.blacktide.lookup-test
    com.tailrecursion.blacktide.invocation-test
    com.tailrecursion.blacktide.interop-values-test
    com.tailrecursion.blacktide.algorithms-test])

(defn -main [& selected]
  (let [suites (if (seq selected) (mapv symbol selected) suites)]
    (doseq [suite suites] (require suite))
    (let [{:keys [fail error]} (apply test/run-tests suites)]
      (shutdown-agents)
      (when (pos? (+ fail error)) (System/exit 1)))))