Skip to content

Commit 19d8b32

Browse files
committed
adding build and test capabilities to deps and build.clj
1 parent 6bf48e2 commit 19d8b32

File tree

3 files changed

+59
-3
lines changed

3 files changed

+59
-3
lines changed

build.clj

+46-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,56 @@
33
(:require [clojure.tools.build.api :as b]))
44

55
(def class-dir "target/classes")
6-
(def basis (b/create-basis {:project "deps.edn"}))
6+
(def basis (b/create-basis {:project "deps.edn"
7+
:aliases [:dev]}))
8+
9+
(defn compile-tests
10+
[_]
11+
(b/delete {:path "target"})
12+
(b/compile-clj {:basis basis
13+
:src-dirs ["src/test/clojure"]
14+
:class-dir class-dir,
15+
:ns-compile '[clojure.core.async-test
16+
clojure.core.pipeline-test
17+
clojure.core.async.buffers-test
18+
clojure.core.async.concurrent-test
19+
clojure.core.async.exceptions-test
20+
clojure.core.async.timers-test]}))
21+
22+
(defn compile-tests-vthreads
23+
[_]
24+
(b/delete {:path "target"})
25+
(b/compile-clj {:basis (b/create-basis {:project "deps.edn" :aliases [:dev :vthreads]})
26+
:src-dirs ["src/test/clojure"]
27+
:class-dir class-dir,
28+
:filter-nses '[clojure.core.async]
29+
:ns-compile '[clojure.core.async-test
30+
clojure.core.pipeline-test
31+
clojure.core.async.buffers-test
32+
clojure.core.async.concurrent-test
33+
clojure.core.async.exceptions-test
34+
clojure.core.async.timers-test]}))
35+
36+
(defn compile-tests-no-vthreads
37+
[_]
38+
(b/delete {:path "target"})
39+
(b/compile-clj {:basis (b/create-basis {:project "deps.edn" :aliases [:dev :no-vthreads]})
40+
:src-dirs ["src/test/clojure"]
41+
:class-dir class-dir,
42+
:filter-nses '[clojure.core.async]
43+
:ns-compile '[clojure.core.async-test
44+
clojure.core.pipeline-test
45+
clojure.core.async.buffers-test
46+
clojure.core.async.concurrent-test
47+
clojure.core.async.exceptions-test
48+
clojure.core.async.timers-test]}))
749

850
(defn compile
951
[_]
1052
(b/delete {:path "target"})
11-
(b/compile-clj {:basis basis, :src-dirs ["src/main/clojure"], :class-dir class-dir,
53+
(b/compile-clj {:basis basis
54+
:src-dirs ["src/main/clojure"]
55+
:class-dir class-dir
1256
:filter-nses '[clojure.core.async]
1357
:ns-compile '[clojure.core.async.impl.protocols
1458
clojure.core.async.impl.mutex

deps.edn

+12
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,16 @@
3232
:doc-files ["doc/flow.md"]
3333
:output-path "docs"
3434
:html {:namespace-list :flat}}}
35+
36+
:dev {:extra-paths ["src/test/clojure"]}
37+
:aot {:extra-paths ["target/classes"]}
38+
:vthreads {:jvm-opts ["-Dclojure.core.async.vthreads=target"]}
39+
:no-vthreads {:jvm-opts ["-Dclojure.core.async.vthreads=avoid"]}
40+
41+
;; clj -X:dev:test :dirs '["src/test/clojure"]'
42+
;; clj -X:aot:test :dirs '["target/classes"]' ???
43+
:test {:extra-deps {io.github.cognitect-labs/test-runner
44+
{:git/tag "v0.5.1" :git/sha "dfb30dd"}}
45+
:main-opts ["-m" "cognitect.test-runner"]
46+
:exec-fn cognitect.test-runner.api/test}
3547
}}

src/main/clojure/clojure/core/async.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ unset - default to ioc when aot, always
7171

7272
(alias 'core 'clojure.core)
7373

74-
(if (not (or (dispatch/aot-vthreads?) (dispatch/runtime-vthreads?)))
74+
(when (not (or (dispatch/aot-vthreads?) (dispatch/runtime-vthreads?)))
7575
(require 'clojure.core.async.impl.go))
7676

7777
(set! *warn-on-reflection* false)

0 commit comments

Comments
 (0)