File tree Expand file tree Collapse file tree
src/main/clojure/clojure/test/generative Expand file tree Collapse file tree Original file line number Diff line number Diff line change 99
1010(ns clojure.test.generative.runner
1111 (:require
12- [clojure.pprint :as pprint]
1312 [clojure.tools.namespace :as ns ]
1413 [clojure.data.generators :as gen]
1514 [clojure.test.generative :as tgen]))
2625 read-string
2726 10000 ]])
2827
29- (defn- config
28+ (defn config
29+ " Returns runner configuration derived from system properties."
3030 []
3131 (reduce
3232 (fn [m [prop path coerce default ]]
123123 :seeds (repeatedly nthreads next-seed)})
124124 tests))
125125
126- (defn- prf
126+ (def ^:private serializer (agent nil ))
127+
128+ (defn serialized
129+ " Returns a function that calls f for side effects, async,
130+ serialized by an agent"
131+ ([f] (serialized f serializer))
132+ ([f agt]
133+ (fn [& args]
134+ (send-off agt
135+ (fn [_]
136+ (try
137+ (apply f args)
138+ (catch Throwable t
139+ (.printStackTrace t)))
140+ nil ))
141+ nil )))
142+
143+ (def prf
127144 " Print and flush."
128- [s]
129- (print s) (flush ))
145+ (serialized (fn [s]
146+ (binding [*out* *err*]
147+ (print s)
148+ (flush )))))
149+
150+ (def print-stack-trace
151+ (serialized (fn [^Throwable t] (.printStackTrace t))))
152+
153+ (def sprn (serialized prn))
130154
131155(defn dir-tests
132156 " Returns all tests in dirs"
161185 ret (reduce
162186 (fn [{:keys [failures iters nresults]} result]
163187 (when (:exception result)
164- (.printStackTrace ^Throwable (:exception result)))
188+ (print-stack-trace (:exception result)))
165189 (if (:exception result)
166- (prn result)
190+ (sprn result)
167191 (progress ))
168192 {:failures (+ failures (if (:exception result) 1 0 ))
169193 :iters (+ iters (:iter result))
You can’t perform that action at this time.
0 commit comments