Skip to content
This repository has been archived by the owner on Jul 25, 2023. It is now read-only.

Commit

Permalink
[tool] Add performance tests for renderers
Browse files Browse the repository at this point in the history
My initial motivation is to ensure that the new Clojure renderer (#155)
is faster than the current Node renderer. Once we decommission the Node
renderer (#163) these tests will serve as regression tests.

Closes #182
  • Loading branch information
Avi Flax committed Jul 23, 2019
1 parent e0af83d commit 81a595c
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
Expand Up @@ -124,6 +124,14 @@
(is (s/valid? ::r/failure-result result)
(expound-str ::r/failure-result result))
(is (every? #(includes? message %) expected-strings))
(is (includes? message "errors were found in the diagram definition")))))))))
(is (includes? message "errors were found in the diagram definition")))))))
(testing "performance"
(let [yaml (slurp (file dir "diagram_valid_formatted_snapped.yaml"))
start-ns (System/nanoTime)
results (doall (repeatedly 10 #(render renderer yaml)))
elapsed-ms (/ (double (- (System/nanoTime) start-ns)) 1000000.0)]
(is (<= elapsed-ms 10000))
(doseq [result results]
(is (s/valid? ::r/success-result result)))))))

(deftest prep-yaml (check `cr/prep-yaml))
Expand Up @@ -97,4 +97,13 @@
{:keys [::anom/message] :as result} (r/render (->NodeRenderer) input)]
(is (s/valid? ::r/failure-result result)
(expound-str ::r/failure-result result))
(is (every? #(includes? message %) expected-strings)))))))
(is (every? #(includes? message %) expected-strings))))))
(testing "performance"
(let [yaml (slurp (file dir "diagram_valid_formatted_snapped.yaml"))
renderer (->NodeRenderer)
start-ns (System/nanoTime)
results (doall (repeatedly 10 #(r/render renderer yaml)))
elapsed-ms (/ (double (- (System/nanoTime) start-ns)) 1000000.0)]
(is (<= elapsed-ms 25000))
(doseq [result results]
(is (s/valid? ::r/success-result result))))))

0 comments on commit 81a595c

Please sign in to comment.