Update tests, migrate to Expectations lib
This commit is contained in:
parent
ab3209f2dc
commit
6fe433b579
4 changed files with 43 additions and 36 deletions
11
project.clj
11
project.clj
|
|
@ -4,13 +4,18 @@
|
||||||
:license {:name "Eclipse Public License"
|
:license {:name "Eclipse Public License"
|
||||||
:url "http://www.eclipse.org/legal/epl-v10.html"}
|
:url "http://www.eclipse.org/legal/epl-v10.html"}
|
||||||
:dependencies [[org.clojure/clojure "1.3.0"]
|
:dependencies [[org.clojure/clojure "1.3.0"]
|
||||||
|
[expectations "1.4.43"]
|
||||||
[org.iq80.snappy/snappy "0.3"]]
|
[org.iq80.snappy/snappy "0.3"]]
|
||||||
:profiles {:1.3 {:dependencies [[org.clojure/clojure "1.3.0"]]}
|
:profiles {:1.3 {:dependencies [[org.clojure/clojure "1.3.0"]]}
|
||||||
:1.4 {:dependencies [[org.clojure/clojure "1.4.0"]]}
|
:1.4 {:dependencies [[org.clojure/clojure "1.4.0"]]}
|
||||||
:1.5 {:dependencies [[org.clojure/clojure "1.5.1"]]}
|
:1.5 {:dependencies [[org.clojure/clojure "1.5.1"]]}
|
||||||
:dev {:dependencies []}
|
:dev {:dependencies []}
|
||||||
:test {:dependencies [[org.xerial.snappy/snappy-java "1.0.5-M3"]]}}
|
:test {:dependencies [[org.xerial.snappy/snappy-java "1.0.5-M3"]]}}
|
||||||
:aliases {"test-all" ["with-profile" "test,1.3:test,1.4:test,1.5" "test"]}
|
:aliases {"test-all" ["with-profile" "test,1.3:test,1.4:test,1.5" "expectations"]
|
||||||
:plugins [[codox "0.6.4"]]
|
"test-auto" ["with-profile" "test" "autoexpect"]
|
||||||
|
"start-dev" ["with-profile" "dev,test" "repl" ":headless"]}
|
||||||
|
:plugins [[lein-expectations "0.0.7"]
|
||||||
|
[lein-autoexpect "0.2.5"]
|
||||||
|
[codox "0.6.4"]]
|
||||||
:min-lein-version "2.0.0"
|
:min-lein-version "2.0.0"
|
||||||
:warn-on-reflection true)
|
:warn-on-reflection true)
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
;; Remove stuff from stress-data that breaks reader
|
;; Remove stuff from stress-data that breaks reader
|
||||||
(def data (dissoc nippy/stress-data :queue :queue-empty :bytes))
|
(def data (dissoc nippy/stress-data :queue :queue-empty :bytes))
|
||||||
|
|
||||||
(defmacro bench [& body] `(utils/bench 10000 (do ~@body) :warmup-laps 1000))
|
(defmacro bench [& body] `(utils/bench 10000 (do ~@body) :warmup-laps 2000))
|
||||||
|
|
||||||
(defn reader-freeze [x] (binding [*print-dup* false] (pr-str x)))
|
(defn reader-freeze [x] (binding [*print-dup* false] (pr-str x)))
|
||||||
(defn reader-thaw [x] (binding [*read-eval* false] (read-string x)))
|
(defn reader-thaw [x] (binding [*read-eval* false] (read-string x)))
|
||||||
|
|
@ -18,8 +18,14 @@
|
||||||
(def roundtrip-fast (comp #(nippy/thaw-from-bytes % :compressed? false)
|
(def roundtrip-fast (comp #(nippy/thaw-from-bytes % :compressed? false)
|
||||||
#(nippy/freeze-to-bytes % :compress? false)))
|
#(nippy/freeze-to-bytes % :compress? false)))
|
||||||
|
|
||||||
(defn autobench [] {:defaults (bench (roundtrip-defaults data))
|
(defn autobench []
|
||||||
:encrypted (bench (roundtrip-encrypted data))})
|
(println "Benchmarking roundtrips")
|
||||||
|
(println "-----------------------")
|
||||||
|
(let [results {:defaults (bench (roundtrip-defaults data))
|
||||||
|
:encrypted (bench (roundtrip-encrypted data))
|
||||||
|
:fast (bench (roundtrip-fast data))}]
|
||||||
|
(println results)
|
||||||
|
results))
|
||||||
|
|
||||||
(comment
|
(comment
|
||||||
|
|
||||||
|
|
|
||||||
26
test/taoensso/nippy/tests/main.clj
Normal file
26
test/taoensso/nippy/tests/main.clj
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
(ns taoensso.nippy.tests.main
|
||||||
|
(:use [expectations :as test])
|
||||||
|
(:require [taoensso.nippy :as nippy]
|
||||||
|
[taoensso.nippy.benchmarks :as benchmarks]))
|
||||||
|
|
||||||
|
;; Remove stuff from stress-data that breaks roundtrip equality
|
||||||
|
(def test-data (dissoc nippy/stress-data :bytes))
|
||||||
|
|
||||||
|
(def roundtrip-defaults (comp nippy/thaw-from-bytes nippy/freeze-to-bytes))
|
||||||
|
(def roundtrip-encrypted (comp #(nippy/thaw-from-bytes % :password [:cached "secret"])
|
||||||
|
#(nippy/freeze-to-bytes % :password [:cached "secret"])))
|
||||||
|
|
||||||
|
(expect test-data (roundtrip-defaults test-data))
|
||||||
|
(expect test-data (roundtrip-encrypted test-data))
|
||||||
|
(expect ; Snappy lib compatibility
|
||||||
|
(let [thaw #(nippy/thaw-from-bytes % :compressed? false)
|
||||||
|
^bytes raw-ba (nippy/freeze-to-bytes test-data :compress? false)
|
||||||
|
^bytes xerial-ba (org.xerial.snappy.Snappy/compress raw-ba)
|
||||||
|
^bytes iq80-ba (org.iq80.snappy.Snappy/compress raw-ba)]
|
||||||
|
(= (thaw raw-ba)
|
||||||
|
(thaw (org.xerial.snappy.Snappy/uncompress xerial-ba))
|
||||||
|
(thaw (org.xerial.snappy.Snappy/uncompress iq80-ba))
|
||||||
|
(thaw (org.iq80.snappy.Snappy/uncompress iq80-ba 0 (alength iq80-ba)))
|
||||||
|
(thaw (org.iq80.snappy.Snappy/uncompress xerial-ba 0 (alength xerial-ba))))))
|
||||||
|
|
||||||
|
(expect (benchmarks/autobench))
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
(ns test-nippy.main
|
|
||||||
(:use [clojure.test])
|
|
||||||
(:require [taoensso.nippy :as nippy]
|
|
||||||
[taoensso.nippy.benchmarks :as benchmarks]))
|
|
||||||
|
|
||||||
;; Remove stuff from stress-data that breaks roundtrip equality
|
|
||||||
(def test-data (dissoc nippy/stress-data :bytes))
|
|
||||||
|
|
||||||
(def roundtrip-defaults (comp nippy/thaw-from-bytes nippy/freeze-to-bytes))
|
|
||||||
(def roundtrip-encrypted (comp #(nippy/thaw-from-bytes % :password [:cached "secret"])
|
|
||||||
#(nippy/freeze-to-bytes % :password [:cached "secret"])))
|
|
||||||
(deftest test-roundtrip-defaults (is (= test-data (roundtrip-defaults test-data))))
|
|
||||||
(deftest test-roundtrip-encrypted (is (= test-data (roundtrip-encrypted test-data))))
|
|
||||||
|
|
||||||
(println "Benchmarking roundtrips (x3)")
|
|
||||||
(println "----------------------------")
|
|
||||||
(println (benchmarks/autobench))
|
|
||||||
(println (benchmarks/autobench))
|
|
||||||
(println (benchmarks/autobench))
|
|
||||||
|
|
||||||
(deftest test-snappy-library-compatibility
|
|
||||||
(let [thaw #(nippy/thaw-from-bytes % :compressed? false)
|
|
||||||
^bytes raw-ba (nippy/freeze-to-bytes test-data :compress? false)
|
|
||||||
^bytes xerial-ba (org.xerial.snappy.Snappy/compress raw-ba)
|
|
||||||
^bytes iq80-ba (org.iq80.snappy.Snappy/compress raw-ba)]
|
|
||||||
(is (= (thaw raw-ba)
|
|
||||||
(thaw (org.xerial.snappy.Snappy/uncompress xerial-ba))
|
|
||||||
(thaw (org.xerial.snappy.Snappy/uncompress iq80-ba))
|
|
||||||
(thaw (org.iq80.snappy.Snappy/uncompress iq80-ba 0 (alength iq80-ba)))
|
|
||||||
(thaw (org.iq80.snappy.Snappy/uncompress xerial-ba 0 (alength xerial-ba)))))))
|
|
||||||
Loading…
Reference in a new issue