Pre: Use SQLite temp files in deftest-db.

These temp files will almost certainly live in memory only, speeding our
test suite evaluation significantly.  Before this patch, in a warmed
REPL environment I get:

Testing datomish.db-test

Ran 19 tests containing 97 assertions.
0 failures, 0 errors.
"Elapsed time: 1408.720681 msecs"
"Elapsed time: 1343.986464 msecs"
"Elapsed time: 1338.660762 msecs"

After this patch, in a warmed REPL environment I get:

Testing datomish.db-test

Ran 19 tests containing 97 assertions.
0 failures, 0 errors.
"Elapsed time: 587.605168 msecs"
"Elapsed time: 569.522333 msecs"
"Elapsed time: 589.080282 msecs"
This commit is contained in:
Nick Alexander 2016-09-02 13:52:18 -07:00
parent cfdce12c1a
commit 94bac9704b

View file

@ -5,8 +5,7 @@
(ns datomish.test-macros (ns datomish.test-macros
#?(:cljs #?(:cljs
(:require-macros (:require-macros
[datomish.test-macros] [datomish.test-macros]))
[datomish.node-tempfile-macros]))
(:require (:require
[datomish.pair-chan])) [datomish.pair-chan]))
@ -44,16 +43,8 @@
(defmacro deftest-db (defmacro deftest-db
[n conn-var & body] [n conn-var & body]
`(deftest-async ~n `(deftest-async ~n
(if-cljs (let [~conn-var (datomish.pair-chan/<? (datomish.api/<connect ""))]
(datomish.node-tempfile-macros/with-tempfile [t# (datomish.node-tempfile/tempfile)]
(let [~conn-var (datomish.pair-chan/<? (datomish.api/<connect t#))]
(try (try
~@body ~@body
(finally (finally
(datomish.pair-chan/<? (datomish.api/<close ~conn-var)))))) (datomish.pair-chan/<? (datomish.api/<close ~conn-var)))))))
(tempfile.core/with-tempfile [t# (tempfile.core/tempfile)]
(let [~conn-var (datomish.pair-chan/<? (datomish.api/<connect t#))]
(try
~@body
(finally
(datomish.pair-chan/<? (datomish.api/<close ~conn-var)))))))))