11(ns user
22 (:require
3- [clojure.core.server :as server]
4- [clojure.java.io :as io]
5- [clojure.test :as t]
6- [clojure.tools.namespace.repl :as ns ]))
3+ [clj-reload.core :as reload]
4+ [duti.core :as duti]))
75
8- (ns/set-refresh-dirs " src" " bench" " test" #_" bench_datomic" #_" test_datomic" )
6+ (reload/init
7+ {:dirs [" src" " bench" " test" #_" bench_datomic" #_" test_datomic" ]
8+ :no-reload '#{user}})
99
10- (defn reload []
10+ (defn reload [& [opts] ]
1111 (set! *warn-on-reflection* true )
12- (let [res (ns/refresh )]
13- (if (instance? Throwable res)
14- (do
15- (.printStackTrace ^Throwable res)
16- (throw res))
17- res)))
18-
19- (def lock
20- (Object. ))
21-
22- (defn position []
23- (let [trace (->> (Thread/currentThread )
24- (.getStackTrace )
25- (seq ))
26- el ^StackTraceElement (nth trace 4 )]
27- (str " [" (clojure.lang.Compiler/demunge (.getClassName el)) " " (.getFileName el) " :" (.getLineNumber el) " ]" )))
28-
29- (defn p [form]
30- `(let [t# (System/currentTimeMillis )
31- res# ~form]
32- (locking lock
33- (println (str " #p" (position ) " " '~form " => (" (- (System/currentTimeMillis ) t#) " ms) " res#)))
34- res#))
12+ (let [res (reload/reload opts)
13+ cnt (count (:loaded res))]
14+ (str " Reloaded " cnt " namespace" (when (not= 1 cnt) " s" ))))
3515
3616(defn -main [& args]
37- ; ; setup repl
3817 (let [args (apply array-map args)
39- port (or
40- (some-> (get args " --port" ) parse-long)
41- (+ 1024 (rand-int 64512 )))
42- file (io/file " .repl-port" )]
43- (println " Started Server Socket REPL on port" port)
44- (spit file port)
45- (.deleteOnExit file)
46- (server/start-server
47- {:name " repl"
48- :port port
49- :accept 'clojure.core.server/repl
50- :server-daemon false })))
18+ ; ; starting app
19+ _ (set! *warn-on-reflection* true )
20+ _ (require 'datascript.test)
21+ ; ; starting socket repl
22+ port (some-> (get args " --port" ) parse-long)
23+ _ (duti/start-socket-repl {:port port})]))
5124
5225(defn test-all []
5326 (reload )
54- (t/run-all-tests #"datascript\. .*" ))
27+ (duti/test #"datascript\. test\. .*" ))
28+
29+ (defn -test-main [_]
30+ (reload {:only #"datascript\. test\. .*" })
31+ (duti/test-exit #"datascript\. test\. .*" ))
0 commit comments