Skip to content

Commit c4348d4

Browse files
mfikesdnolen
authored andcommitted
CLJS-1905: Self-host: Stacktraces for script/test-self-parity
1 parent 74f342c commit c4348d4

File tree

1 file changed

+26
-8
lines changed

1 file changed

+26
-8
lines changed

src/test/self/self_parity/test.cljs

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
(:require [clojure.string :as string]
1919
[cljs.nodejs :as nodejs]
2020
[cljs.js :as cljs]
21-
[cljs.reader :as reader]))
21+
[cljs.reader :as reader]
22+
[cljs.stacktrace :as st]))
2223

2324
(def out-dir "builds/out-self-parity")
2425

@@ -232,15 +233,32 @@
232233
[st ns form cb]
233234
(cljs/eval st
234235
form
235-
{:ns ns
236-
:context :expr
237-
:load load-fn
238-
:eval node-eval
239-
:verbose false}
236+
{:ns ns
237+
:context :expr
238+
:load load-fn
239+
:eval node-eval
240+
:source-map true
241+
:verbose false}
240242
cb))
241243

242244
;; Test suite runner
243245

246+
(defn- handle-error
247+
[error sms]
248+
(loop [error error]
249+
(let [message (if (instance? ExceptionInfo error)
250+
(ex-message error)
251+
(.-message error))
252+
parsed-stacktrace (st/parse-stacktrace {}
253+
(.-stack error)
254+
{:ua-product :nodejs}
255+
{})]
256+
(println message)
257+
(print (st/mapped-stacktrace-str parsed-stacktrace sms))
258+
(when-some [cause (.-cause error)]
259+
(print "caused by: ")
260+
(recur cause)))))
261+
244262
(defn run-tests
245263
"Runs the tests."
246264
[]
@@ -285,7 +303,7 @@
285303
[static.core-test]))
286304
(fn [{:keys [value error]}]
287305
(if error
288-
(prn error)
306+
(handle-error error (:source-maps @st))
289307
(eval-form st 'parity.core
290308
'(run-tests
291309
'cljs.primitives-test
@@ -322,7 +340,7 @@
322340
'static.core-test)
323341
(fn [{:keys [value error]}]
324342
(when error
325-
(prn error)))))))))
343+
(handle-error error (:source-maps @st))))))))))
326344

327345
(defn -main [& args]
328346
(init-runtime)

0 commit comments

Comments
 (0)