From a9e445e5a19c3be3604e36b84455949651be7abf Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 25 Jul 2021 17:49:01 -0400 Subject: [PATCH] fix windows lib tests (#956) - add lib-tests path to deps.edn and remove it from shell scripts - change windows lib test batch script to write a bb.edn file - re-enable native lib tests on windows --- appveyor.yml | 2 +- deps.edn | 2 +- script/lib_tests/bb_edn_from_deps.clj | 20 ++++++++++++++++++++ script/lib_tests/run_all_libtests | 2 +- script/lib_tests/run_all_libtests.bat | 10 ++++++++-- 5 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 script/lib_tests/bb_edn_from_deps.clj diff --git a/appveyor.yml b/appveyor.yml index 7c5aeded..c1d8eb3f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -74,7 +74,7 @@ build_script: call script/test.bat -# call script/run_lib_tests.bat + call script/run_lib_tests.bat artifacts: - path: babashka-*-windows-amd64.zip diff --git a/deps.edn b/deps.edn index 8d8239af..b7c289c0 100644 --- a/deps.edn +++ b/deps.edn @@ -50,7 +50,7 @@ "-Dclojure.compiler.direct-linking=true"] :main-opts ["-m" "babashka.profile"]} :lib-tests - {:extra-paths ["process/src" "process/test"] + {:extra-paths ["process/src" "process/test" "test-resources/lib_tests"] :extra-deps {babashka/clj-http-lite {:git/url "https://github.com/babashka/clj-http-lite" :sha "f44ebe45446f0f44f2b73761d102af3da6d0a13e"} diff --git a/script/lib_tests/bb_edn_from_deps.clj b/script/lib_tests/bb_edn_from_deps.clj new file mode 100644 index 00000000..86568dc3 --- /dev/null +++ b/script/lib_tests/bb_edn_from_deps.clj @@ -0,0 +1,20 @@ +(ns bb_edn_from_deps + (:require [clojure.edn :as edn] + [clojure.set :as set])) + +(defn select-deps [m] (select-keys m [:paths :deps])) + +(defn extra-deps [m] + (-> m + (get-in [:aliases :lib-tests]) + (set/rename-keys {:extra-deps :deps + :extra-paths :paths}) + select-deps)) + +(if (seq *command-line-args*) + (->> (slurp "deps.edn") + edn/read-string + ((juxt select-deps extra-deps)) + (apply merge-with into) + (spit (first *command-line-args*))) + (println "Please specify an output file")) diff --git a/script/lib_tests/run_all_libtests b/script/lib_tests/run_all_libtests index c829b0cd..99f55079 100755 --- a/script/lib_tests/run_all_libtests +++ b/script/lib_tests/run_all_libtests @@ -11,5 +11,5 @@ fi export BABASHKA_CLASSPATH BABASHKA_CLASSPATH=$(clojure -A:lib-tests -Spath) -$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" \ +$BB_CMD -cp "$BABASHKA_CLASSPATH" \ -f "test-resources/lib_tests/babashka/run_all_libtests.clj" "$@" diff --git a/script/lib_tests/run_all_libtests.bat b/script/lib_tests/run_all_libtests.bat index 015073a1..831d9020 100644 --- a/script/lib_tests/run_all_libtests.bat +++ b/script/lib_tests/run_all_libtests.bat @@ -1,5 +1,11 @@ if "%BABASHKA_TEST_ENV%" EQU "native" (set BB_CMD=.\bb) else (set BB_CMD=lein bb) -for /f %%i in ('.\bb clojure -A:lib-tests -Spath') do set BABASHKA_CLASSPATH=%%i +set EDN=lib_tests.edn -%BB_CMD% -cp "%BABASHKA_CLASSPATH%;test-resources/lib_tests" -f test-resources/lib_tests/babashka/run_all_libtests.clj %* +.\bb -f script/lib_tests/bb_edn_from_deps.clj %EDN% + +set BABASHKA_EDN=%EDN% + +%BB_CMD% -f test-resources/lib_tests/babashka/run_all_libtests.clj %* + +set BABASHKA_EDN=