Skip to content

Commit 0e3a11e

Browse files
authored
Fix jdk8 compatibility (#565)
Addendum for #552 Add jdk variants for CI. Default to jdk 21 but also sanity test on jdks 8, 11 and 17. Fixes #560
1 parent 486d80a commit 0e3a11e

File tree

3 files changed

+33
-16
lines changed

3 files changed

+33
-16
lines changed

.github/workflows/test.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ jobs:
8787
uses: actions/setup-java@v4
8888
with:
8989
distribution: 'temurin'
90-
java-version: '11'
90+
java-version: ${{ matrix.jdk-version }}
9191

9292
- name: Install Clojure Tools
9393
uses: DeLaGuardo/[email protected]

script/test_matrix.clj

+31-14
Original file line numberDiff line numberDiff line change
@@ -6,45 +6,62 @@
66
[helper.main :as main]
77
[lread.status-line :as status]))
88

9-
(defn- test-def [os id platform browser]
9+
(defn- test-def [{:keys [os id platform browser jdk-version]}]
1010
{:os os
11+
:jdk-version jdk-version
1112
:cmd (->> ["bb" (str "test:" platform)
1213
"--suites" id
1314
(when browser (str "--browsers " browser))
1415
(when (= "ubuntu" os) "--launch-virtual-display")]
1516
(remove nil?)
1617
(string/join " "))
17-
:desc (->> [id os browser platform]
18+
:desc (->> [id os browser (if (= "jvm" platform)
19+
(str "jdk" jdk-version)
20+
platform)]
1821
(remove nil?)
1922
(string/join " "))})
2023

24+
(defn- test-doc [{:keys [os jdk-version]}]
25+
{:os os
26+
:jdk-version jdk-version
27+
:cmd (if (= "ubuntu" os)
28+
"bb test-doc --launch-virtual-display"
29+
"bb test-doc")
30+
:desc (str "test-doc " os " jdk" jdk-version)} )
31+
2132
(defn- github-actions-matrix []
2233
(let [oses ["macos" "ubuntu" "windows"]
2334
ide-browsers ["chrome" "firefox"]
2435
api-browsers ["chrome" "firefox" "edge" "safari"]
25-
platforms ["jvm" "bb"]]
36+
platforms ["jvm" "bb"]
37+
jdk-versions ["8" "11" "17" "21"]
38+
default-opts {:jdk-version "21"}]
2639
(->> (concat
2740
(for [os oses
2841
platform platforms]
29-
(test-def os "unit" platform nil))
42+
(test-def (merge default-opts {:os os :id "unit" :platform platform})))
3043
(for [os oses
3144
platform platforms
3245
browser ide-browsers]
33-
(test-def os "ide" platform browser))
46+
(test-def (merge default-opts {:os os :id "ide" :platform platform :browser browser})))
3447
(for [os oses
3548
platform platforms
3649
browser api-browsers
3750
:when (not (or (and (= "ubuntu" os) (some #{browser} ["edge" "safari"]))
3851
(and (= "windows" os) (= "safari" browser))))]
39-
(test-def os "api" platform browser))
52+
(test-def (merge default-opts {:os os :id "api" :platform platform :browser browser})))
53+
;; for jdk coverage we don't need to run across all oses and browsers
54+
(for [id ["unit" "ide" "api"]
55+
jdk-version jdk-versions
56+
:when (not= jdk-version (:jdk-version default-opts))]
57+
(test-def {:jdk-version jdk-version :os "ubuntu" :id id :platform "jvm" :browser "firefox"}))
4058
(for [os oses]
41-
{:os os
42-
:cmd (if (= "ubuntu" os)
43-
"bb test-doc --launch-virtual-display"
44-
"bb test-doc")
45-
:desc (str "test-doc " os)}))
46-
(sort-by :desc)
47-
(into [{:os "ubuntu" :cmd "bb lint" :desc "lint"}]))))
59+
(test-doc (merge default-opts {:os os})))
60+
(for [jdk-version jdk-versions
61+
:when (not= jdk-version (:jdk-version default-opts))]
62+
(test-doc {:jdk-version jdk-version :os "ubuntu"})))
63+
(sort-by (juxt #(parse-long (:jdk-version %)) :desc))
64+
(into [(merge default-opts {:os "ubuntu" :cmd "bb lint" :desc "lint"})]))))
4865

4966
(def valid-formats ["json" "table"])
5067
(def cli-spec {:help {:desc "This usage help"}
@@ -74,7 +91,7 @@
7491
(status/line :detail
7592
(if (= "json" (:format opts))
7693
(json/generate-string matrix)
77-
(doric/table [:os :cmd :desc] matrix)))))))
94+
(doric/table [:os :jdk-version :cmd :desc] matrix)))))))
7895

7996
(main/when-invoked-as-script
8097
(apply -main *command-line-args*))

src/etaoin/api.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -2818,7 +2818,7 @@
28182818
.codePoints
28192819
.iterator
28202820
iterator-seq
2821-
(map #(Character/toString %))))
2821+
(map #(String. (Character/toChars %)))))
28222822

28232823
(defn- make-input* [text & more]
28242824
(codepoints (apply str text more)))

0 commit comments

Comments
 (0)