nandi/jolt-nativepublic Fork 0
089e6f7d8398ecab5c661dbf79e4063ec6c3b48c
Commits
Clone
git clone https://git.rickub.com/nandi/jolt-native.git
git clone ssh://git@rickub.com/nandi/jolt-native.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

test_runner.jolt · 41 lines · 1.6 KBGDScript3 Blame HistoryRaw
Bring vidya in cfd3e36 nandi 19d ago1(ns glimmer-vidya.test-runner
2 "Entry point for `jolt -M:test`. Requires each test namespace, runs
3 clojure.test against it, and exits non-zero if anything failed.
4
5 The suite is headless. It links libvidya and builds real node trees through
6 the FFI, but never opens a window: only `vidya_tree_frame` needs a GL
7 surface, so no display is involved."
8 (:require [clojure.test :as t]))
9
10;; Surface full causes on :error the default report swallows the throwable.
11(defmethod t/report :error [m]
12 (t/with-test-out
13 (t/inc-report-counter :error)
14 (println "\nERROR in" (t/testing-vars-str m))
15 (when (seq t/*testing-contexts*) (println (t/testing-contexts-str)))
16 (when-let [message (:message m)] (println message))
17 (when-let [e (:actual m)]
18 (if (instance? Throwable e)
19 (do (println " ->" (.getName (class e)) ":" (ex-message e))
20 (when-let [d (ex-data e)] (prn d)))
21 (prn e)))))
22
23(defn- exit [code]
24 (cond
25 (resolve 'jolt.host/exit) ((resolve 'jolt.host/exit) code)
26 (resolve 'System/exit) ((resolve 'System/exit) code)
27 :else nil))
28
29(defn -main [& _]
30 (let [namespaces '[glimmer-vidya.backend-test]]
31 (doseq [ns namespaces]
32 (try (require ns :reload)
33 (catch Exception e
34 (println "ERROR requiring" ns ":" (ex-message e)))))
35 (let [results (apply t/run-tests namespaces)
36 failed (+ (:fail results 0) (:error results 0))]
37 (println "----")
38 (println "tests:" (:test results 0)
39 "assertions:" (:pass results 0) "passed /"
40 failed "failed")
41 (when (pos? failed) (exit 1)))))