From 3e308ca3370e4057075f8853bf611bfd4c26ceb6 Mon Sep 17 00:00:00 2001 From: Eugen Stan Date: Fri, 26 Aug 2022 19:50:43 +0300 Subject: [PATCH 1/5] Add rcf base and project --- bases/hyperfidle-rcf/deps.edn | 4 ++++ .../src/polylith_kaocha/rcf/sample.clj | 9 +++++++++ .../test/polylith_kaocha/rcf/sample_test.clj | 9 +++++++++ deps.edn | 2 ++ projects/hyperfidle-rcf/deps.edn | 10 ++++++++++ .../polylith-kaocha/rcf/tests.edn | 7 +++++++ .../test/polylith_kaocha/rcf/test_setup.clj | 17 +++++++++++++++++ workspace.edn | 6 ++++++ 8 files changed, 64 insertions(+) create mode 100644 bases/hyperfidle-rcf/deps.edn create mode 100644 bases/hyperfidle-rcf/src/polylith_kaocha/rcf/sample.clj create mode 100644 bases/hyperfidle-rcf/test/polylith_kaocha/rcf/sample_test.clj create mode 100644 projects/hyperfidle-rcf/deps.edn create mode 100644 projects/hyperfidle-rcf/test-resources/polylith-kaocha/rcf/tests.edn create mode 100644 projects/hyperfidle-rcf/test/polylith_kaocha/rcf/test_setup.clj diff --git a/bases/hyperfidle-rcf/deps.edn b/bases/hyperfidle-rcf/deps.edn new file mode 100644 index 0000000..12aff64 --- /dev/null +++ b/bases/hyperfidle-rcf/deps.edn @@ -0,0 +1,4 @@ +{:paths ["src"] + :deps {com.hyperfiddle/rcf {:mvn/version "20220405"}} + :aliases {:test {:extra-paths ["test"] + :extra-deps {}}}} diff --git a/bases/hyperfidle-rcf/src/polylith_kaocha/rcf/sample.clj b/bases/hyperfidle-rcf/src/polylith_kaocha/rcf/sample.clj new file mode 100644 index 0000000..dcf3088 --- /dev/null +++ b/bases/hyperfidle-rcf/src/polylith_kaocha/rcf/sample.clj @@ -0,0 +1,9 @@ +(ns polylith-kaocha.rcf.sample + (:require [hyperfiddle.rcf :refer [tests]])) + +(tests + + "another one bites the dust" + (= 1 1) := true + + (+ 1 1) := 2) \ No newline at end of file diff --git a/bases/hyperfidle-rcf/test/polylith_kaocha/rcf/sample_test.clj b/bases/hyperfidle-rcf/test/polylith_kaocha/rcf/sample_test.clj new file mode 100644 index 0000000..16690c9 --- /dev/null +++ b/bases/hyperfidle-rcf/test/polylith_kaocha/rcf/sample_test.clj @@ -0,0 +1,9 @@ +(ns polylith-kaocha.rcf.sample-test + (:require [hyperfiddle.rcf :refer [tests]])) + +(tests + + "another one bites the dust" + (= 1 1) := true + + (+ 1 1) := 2) \ No newline at end of file diff --git a/deps.edn b/deps.edn index f266d48..ee99005 100644 --- a/deps.edn +++ b/deps.edn @@ -10,6 +10,8 @@ "components/util/src"] :extra-deps {org.clojure/clojure {:mvn/version "1.11.1"} + poly/hyperfidle-rcf {:local/root "bases/hyperfidle-rcf"} + ;; poly modules polylith-kaocha.bases/example {:local/root "bases/example"} polylith-kaocha.bases/test-runner {:local/root "bases/test-runner"} diff --git a/projects/hyperfidle-rcf/deps.edn b/projects/hyperfidle-rcf/deps.edn new file mode 100644 index 0000000..c9106e1 --- /dev/null +++ b/projects/hyperfidle-rcf/deps.edn @@ -0,0 +1,10 @@ +{:paths [] + :deps {poly/hyperfidle-rcf {:local/root "../bases/hyperfidle-rcf"}} + :aliases {:test {:extra-paths ["test-resources"] + :extra-deps {polylith-kaocha/kaocha-wrapper {:local/root "../kaocha-wrapper"} + + ;; kaocha's auto spec test checking needs orchestra and test.check provided + orchestra/orchestra {:mvn/version "2021.01.01-1"} + org.clojure/test.check {:mvn/version "1.1.1"} + + lambdaisland/kaocha-cloverage {:mvn/version "1.0.75"}}}}} diff --git a/projects/hyperfidle-rcf/test-resources/polylith-kaocha/rcf/tests.edn b/projects/hyperfidle-rcf/test-resources/polylith-kaocha/rcf/tests.edn new file mode 100644 index 0000000..dc78fd2 --- /dev/null +++ b/projects/hyperfidle-rcf/test-resources/polylith-kaocha/rcf/tests.edn @@ -0,0 +1,7 @@ +#kaocha/v1 +{:num-tests 10000000 + :plugins [:kaocha.plugin/cloverage + :kaocha.plugin.alpha/spec-test-check] + :reporter #profile {:ci kaocha.report/documentation + :default kaocha.report/dots} + :cloverage/opts {:summary? true :html? true :emma-xml? true :codecov? true}} diff --git a/projects/hyperfidle-rcf/test/polylith_kaocha/rcf/test_setup.clj b/projects/hyperfidle-rcf/test/polylith_kaocha/rcf/test_setup.clj new file mode 100644 index 0000000..016c8a1 --- /dev/null +++ b/projects/hyperfidle-rcf/test/polylith_kaocha/rcf/test_setup.clj @@ -0,0 +1,17 @@ +(ns polylith-kaocha.rcf.test-setup + (:require [hyperfiddle.rcf] + [polylith-kaocha.kaocha-wrapper.config :as config])) + +(defn setup + "Enable rcf tests https://github.com/hyperfiddle/rcf#usage" + [project-name] + (println "Setup hyperfiddle.rcf in project" project-name) + (hyperfiddle.rcf/enable!)) + +(defn post-enhance-config [config opts] + (println "custom post-enhance-config") + (let [{:keys [src-paths test-paths]} opts + opts (assoc opts + :test-paths + (into [] (concat src-paths test-paths)))] + (config/default-post-enhance-config config opts))) diff --git a/workspace.edn b/workspace.edn index 336c188..bc89f2a 100644 --- a/workspace.edn +++ b/workspace.edn @@ -24,6 +24,12 @@ ;; must be available on the poly tool's classpath :polylith-kaocha/runner-opts->kaocha-poly-opts polylith-kaocha.hooks/runner-opts->kaocha-poly-opts}} + "hyperfidle-rcf" + {:alias "rcf" + :test {:setup-fn polylith-kaocha.rcf.test-setup/setup + ;; must be available on the project's classpath + :polylith-kaocha/config-resource "polylith-kaocha/rcf/tests.edn"}} + "kaocha-wrapper" {:alias "kw"} From da2b6d6357746ca65c033ed9766af18f27a34f69 Mon Sep 17 00:00:00 2001 From: Eugen Stan Date: Fri, 26 Aug 2022 20:13:36 +0300 Subject: [PATCH 2/5] Added hyperfidle-rcf project --- .../src/polylith_kaocha/rcf/sample.clj | 9 --------- bases/{hyperfidle-rcf => rcf}/deps.edn | 0 bases/rcf/src/polylith_kaocha/rcf/src_ns.clj | 8 ++++++++ .../test/polylith_kaocha/rcf/sample_test.clj | 7 +++---- bases/rcf/test/polylith_kaocha/rcf/test_ns.clj | 8 ++++++++ deps.edn | 12 +++++++++--- projects/{hyperfidle-rcf => rcf}/deps.edn | 4 ++-- .../test-resources/polylith-kaocha/rcf/tests.edn | 3 +++ .../test/polylith_kaocha/rcf/test_setup.clj | 0 workspace.edn | 2 +- 10 files changed, 34 insertions(+), 19 deletions(-) delete mode 100644 bases/hyperfidle-rcf/src/polylith_kaocha/rcf/sample.clj rename bases/{hyperfidle-rcf => rcf}/deps.edn (100%) create mode 100644 bases/rcf/src/polylith_kaocha/rcf/src_ns.clj rename bases/{hyperfidle-rcf => rcf}/test/polylith_kaocha/rcf/sample_test.clj (70%) create mode 100644 bases/rcf/test/polylith_kaocha/rcf/test_ns.clj rename projects/{hyperfidle-rcf => rcf}/deps.edn (79%) rename projects/{hyperfidle-rcf => rcf}/test-resources/polylith-kaocha/rcf/tests.edn (75%) rename projects/{hyperfidle-rcf => rcf}/test/polylith_kaocha/rcf/test_setup.clj (100%) diff --git a/bases/hyperfidle-rcf/src/polylith_kaocha/rcf/sample.clj b/bases/hyperfidle-rcf/src/polylith_kaocha/rcf/sample.clj deleted file mode 100644 index dcf3088..0000000 --- a/bases/hyperfidle-rcf/src/polylith_kaocha/rcf/sample.clj +++ /dev/null @@ -1,9 +0,0 @@ -(ns polylith-kaocha.rcf.sample - (:require [hyperfiddle.rcf :refer [tests]])) - -(tests - - "another one bites the dust" - (= 1 1) := true - - (+ 1 1) := 2) \ No newline at end of file diff --git a/bases/hyperfidle-rcf/deps.edn b/bases/rcf/deps.edn similarity index 100% rename from bases/hyperfidle-rcf/deps.edn rename to bases/rcf/deps.edn diff --git a/bases/rcf/src/polylith_kaocha/rcf/src_ns.clj b/bases/rcf/src/polylith_kaocha/rcf/src_ns.clj new file mode 100644 index 0000000..4ec7b65 --- /dev/null +++ b/bases/rcf/src/polylith_kaocha/rcf/src_ns.clj @@ -0,0 +1,8 @@ +(ns polylith-kaocha.rcf.src-ns + (:require [hyperfiddle.rcf :refer [tests]])) + +(tests + + (+ 1 1) := 2 + + ) \ No newline at end of file diff --git a/bases/hyperfidle-rcf/test/polylith_kaocha/rcf/sample_test.clj b/bases/rcf/test/polylith_kaocha/rcf/sample_test.clj similarity index 70% rename from bases/hyperfidle-rcf/test/polylith_kaocha/rcf/sample_test.clj rename to bases/rcf/test/polylith_kaocha/rcf/sample_test.clj index 16690c9..0154bc0 100644 --- a/bases/hyperfidle-rcf/test/polylith_kaocha/rcf/sample_test.clj +++ b/bases/rcf/test/polylith_kaocha/rcf/sample_test.clj @@ -2,8 +2,7 @@ (:require [hyperfiddle.rcf :refer [tests]])) (tests - - "another one bites the dust" + (= 1 1) := true - - (+ 1 1) := 2) \ No newline at end of file + + ) \ No newline at end of file diff --git a/bases/rcf/test/polylith_kaocha/rcf/test_ns.clj b/bases/rcf/test/polylith_kaocha/rcf/test_ns.clj new file mode 100644 index 0000000..be38b16 --- /dev/null +++ b/bases/rcf/test/polylith_kaocha/rcf/test_ns.clj @@ -0,0 +1,8 @@ +(ns polylith-kaocha.rcf.test-ns + (:require [hyperfiddle.rcf :refer [tests]])) + +(tests + + (+ 1 1) := 2 + + ) \ No newline at end of file diff --git a/deps.edn b/deps.edn index ee99005..076695e 100644 --- a/deps.edn +++ b/deps.edn @@ -3,14 +3,13 @@ ;; poly modules workaround for Cursive, https://github.com/cursive-ide/cursive/issues/2554 "bases/example/src" + "bases/rcf/src" "bases/test-runner/src" "components/kaocha-test-runner/src" "components/kaocha-wrapper/resources" "components/kaocha-wrapper/src" "components/util/src"] :extra-deps {org.clojure/clojure {:mvn/version "1.11.1"} - - poly/hyperfidle-rcf {:local/root "bases/hyperfidle-rcf"} ;; poly modules polylith-kaocha.bases/example {:local/root "bases/example"} @@ -21,11 +20,18 @@ :test {:extra-paths [;; poly modules "bases/example/test" + "bases/rcf/test" "components/kaocha-test-runner/test" "components/kaocha-wrapper/test" "components/kaocha-wrapper/test-resources" "components/util/test" - "projects/example/test-resources"] + "projects/example/test-resources" + "projects/rcf/test" + "projects/rcf/test-resources"] + :jvm-opts ["-XX:-OmitStackTraceInFastThrow" + ;; Run RCF tests when loading files in REPL + ;; https://github.com/hyperfiddle/rcf#ci + "-Dhyperfiddle.rcf.generate-tests=true"] :extra-deps {lambdaisland/kaocha-cloverage {:mvn/version "1.0.75"}}} :poly {:main-opts ["-m" "polylith.clj.core.poly-cli.core"] diff --git a/projects/hyperfidle-rcf/deps.edn b/projects/rcf/deps.edn similarity index 79% rename from projects/hyperfidle-rcf/deps.edn rename to projects/rcf/deps.edn index c9106e1..e820fa6 100644 --- a/projects/hyperfidle-rcf/deps.edn +++ b/projects/rcf/deps.edn @@ -1,6 +1,6 @@ {:paths [] - :deps {poly/hyperfidle-rcf {:local/root "../bases/hyperfidle-rcf"}} - :aliases {:test {:extra-paths ["test-resources"] + :deps {poly/rcf {:local/root "../../bases/rcf"}} + :aliases {:test {:extra-paths ["test" "test-resources"] :extra-deps {polylith-kaocha/kaocha-wrapper {:local/root "../kaocha-wrapper"} ;; kaocha's auto spec test checking needs orchestra and test.check provided diff --git a/projects/hyperfidle-rcf/test-resources/polylith-kaocha/rcf/tests.edn b/projects/rcf/test-resources/polylith-kaocha/rcf/tests.edn similarity index 75% rename from projects/hyperfidle-rcf/test-resources/polylith-kaocha/rcf/tests.edn rename to projects/rcf/test-resources/polylith-kaocha/rcf/tests.edn index dc78fd2..2a3f099 100644 --- a/projects/hyperfidle-rcf/test-resources/polylith-kaocha/rcf/tests.edn +++ b/projects/rcf/test-resources/polylith-kaocha/rcf/tests.edn @@ -1,5 +1,8 @@ #kaocha/v1 {:num-tests 10000000 + :tests [{:id :unit + :test-paths ["test" "src"] + :ns-patterns [".*"]}] :plugins [:kaocha.plugin/cloverage :kaocha.plugin.alpha/spec-test-check] :reporter #profile {:ci kaocha.report/documentation diff --git a/projects/hyperfidle-rcf/test/polylith_kaocha/rcf/test_setup.clj b/projects/rcf/test/polylith_kaocha/rcf/test_setup.clj similarity index 100% rename from projects/hyperfidle-rcf/test/polylith_kaocha/rcf/test_setup.clj rename to projects/rcf/test/polylith_kaocha/rcf/test_setup.clj diff --git a/workspace.edn b/workspace.edn index bc89f2a..0be166e 100644 --- a/workspace.edn +++ b/workspace.edn @@ -24,7 +24,7 @@ ;; must be available on the poly tool's classpath :polylith-kaocha/runner-opts->kaocha-poly-opts polylith-kaocha.hooks/runner-opts->kaocha-poly-opts}} - "hyperfidle-rcf" + "rcf" {:alias "rcf" :test {:setup-fn polylith-kaocha.rcf.test-setup/setup ;; must be available on the project's classpath From 48950ebabd1a6e2689eb78cb1b1c3979a898f1ec Mon Sep 17 00:00:00 2001 From: Eugen Stan Date: Sat, 27 Aug 2022 00:32:19 +0300 Subject: [PATCH 3/5] Added post-enhance-config fn --- projects/rcf/test/polylith_kaocha/rcf/test_setup.clj | 5 +++-- workspace.edn | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/projects/rcf/test/polylith_kaocha/rcf/test_setup.clj b/projects/rcf/test/polylith_kaocha/rcf/test_setup.clj index 016c8a1..f9c2f6e 100644 --- a/projects/rcf/test/polylith_kaocha/rcf/test_setup.clj +++ b/projects/rcf/test/polylith_kaocha/rcf/test_setup.clj @@ -13,5 +13,6 @@ (let [{:keys [src-paths test-paths]} opts opts (assoc opts :test-paths - (into [] (concat src-paths test-paths)))] - (config/default-post-enhance-config config opts))) + (into [] (concat src-paths test-paths))) + new-config (config/default-post-enhance-config config opts)] + new-config)) diff --git a/workspace.edn b/workspace.edn index 0be166e..f7f5233 100644 --- a/workspace.edn +++ b/workspace.edn @@ -28,7 +28,8 @@ {:alias "rcf" :test {:setup-fn polylith-kaocha.rcf.test-setup/setup ;; must be available on the project's classpath - :polylith-kaocha/config-resource "polylith-kaocha/rcf/tests.edn"}} + :polylith-kaocha/config-resource "polylith-kaocha/rcf/tests.edn" + :polylith-kaocha.kaocha-wrapper/post-enhance-config polylith-kaocha.rcf.test-setup/post-enhance-config}} "kaocha-wrapper" {:alias "kw"} From bc1dd894311d8ff564ba0ca4515b3052fdd7cbb5 Mon Sep 17 00:00:00 2001 From: Eugen Stan Date: Sat, 27 Aug 2022 00:54:08 +0300 Subject: [PATCH 4/5] Added standalone kaocha runner --- bases/rcf/deps.edn | 12 +++++++++++- bases/rcf/tests.edn | 12 ++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 bases/rcf/tests.edn diff --git a/bases/rcf/deps.edn b/bases/rcf/deps.edn index 12aff64..22d144c 100644 --- a/bases/rcf/deps.edn +++ b/bases/rcf/deps.edn @@ -1,4 +1,14 @@ {:paths ["src"] :deps {com.hyperfiddle/rcf {:mvn/version "20220405"}} :aliases {:test {:extra-paths ["test"] - :extra-deps {}}}} + :extra-deps {}} + :itest-runner {:extra-paths ["test"] + :extra-deps {lambdaisland/kaocha {:mvn/version "1.66.1034"} + lambdaisland/kaocha-cloverage {:mvn/version "1.0.75"} + orchestra/orchestra {:mvn/version "2021.01.01-1"} + org.slf4j/slf4j-simple {:mvn/version "2.0.0-beta1"}} + :jvm-opts ["-XX:-OmitStackTraceInFastThrow" + ;; Run RCF tests when loading files in REPL + ;; https://github.com/hyperfiddle/rcf#ci + "-Dhyperfiddle.rcf.generate-tests=true"] + :main-opts ["-m" "kaocha.runner" "--reporter" "kaocha.report/documentation"]}}} diff --git a/bases/rcf/tests.edn b/bases/rcf/tests.edn new file mode 100644 index 0000000..351ff17 --- /dev/null +++ b/bases/rcf/tests.edn @@ -0,0 +1,12 @@ +;; this config is for standalone kaocha +;; run tests with clojure -M:itest-runner +#kaocha/v1 +{:num-tests 10000000 + :tests [{:id :unit + :test-paths ["test" "src"] + :ns-patterns [".*"]}] + :plugins [:kaocha.plugin/cloverage + :kaocha.plugin.alpha/spec-test-check] + :reporter #profile {:ci kaocha.report/documentation + :default kaocha.report/dots} + :cloverage/opts {:summary? true :html? true :emma-xml? true :codecov? true}} From 609eb1eb122c06d1b0e7734c8e01bfcf005eedf0 Mon Sep 17 00:00:00 2001 From: Eugen Stan Date: Mon, 29 Aug 2022 13:51:58 +0300 Subject: [PATCH 5/5] Pass jvm options to poly tool. --- .../src/polylith_kaocha/kaocha_wrapper/interface/runner.clj | 1 + .../src/polylith_kaocha/kaocha_wrapper/runner.clj | 1 + deps.edn | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/components/kaocha-wrapper/src/polylith_kaocha/kaocha_wrapper/interface/runner.clj b/components/kaocha-wrapper/src/polylith_kaocha/kaocha_wrapper/interface/runner.clj index 8a808a7..c25b60b 100644 --- a/components/kaocha-wrapper/src/polylith_kaocha/kaocha_wrapper/interface/runner.clj +++ b/components/kaocha-wrapper/src/polylith_kaocha/kaocha_wrapper/interface/runner.clj @@ -3,4 +3,5 @@ [polylith-kaocha.kaocha-wrapper.runner :as core])) (defn run-tests [opts] + (println "Run tests" opts) (core/run-tests opts)) diff --git a/components/kaocha-wrapper/src/polylith_kaocha/kaocha_wrapper/runner.clj b/components/kaocha-wrapper/src/polylith_kaocha/kaocha_wrapper/runner.clj index 56d1ace..afaa42d 100644 --- a/components/kaocha-wrapper/src/polylith_kaocha/kaocha_wrapper/runner.clj +++ b/components/kaocha-wrapper/src/polylith_kaocha/kaocha_wrapper/runner.clj @@ -6,6 +6,7 @@ [kaocha.plugin] [kaocha.report] [kaocha.result] + [kaocha.runner] [kaocha.specs] [polylith-kaocha.kaocha-wrapper.config :as config] [slingshot.slingshot :refer [try+]])) diff --git a/deps.edn b/deps.edn index 076695e..3a17bfd 100644 --- a/deps.edn +++ b/deps.edn @@ -36,6 +36,10 @@ :poly {:main-opts ["-m" "polylith.clj.core.poly-cli.core"] :extra-paths ["development/poly"] + :jvm-opts ["-XX:-OmitStackTraceInFastThrow" + ;; Run RCF tests when loading files in REPL + ;; https://github.com/hyperfiddle/rcf#ci + "-Dhyperfiddle.rcf.generate-tests=true"] :extra-deps {polylith/clj-poly {:git/url "https://github.com/polyfy/polylith" :git/sha "ccc261e60f6a875ff30858bf84cf67be105eac6f"