Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make tests run on Windows CI #233

Closed
6 tasks done
borkdude opened this issue Jun 4, 2019 · 9 comments
Closed
6 tasks done

make tests run on Windows CI #233

borkdude opened this issue Jun 4, 2019 · 9 comments

Comments

@borkdude
Copy link
Member

borkdude commented Jun 4, 2019

Required: Windows system for development and testing (or do phase 3 first and test via AppVeyor).

Phase 1 (does not require native compilation):

  • use platform-specific file sep everywhere
  • use platform-specific classpath sep everywhere
  • make sure that the JVM tests run with lein test

Phase 2 (testing with native):

  • make sure the native tests run: CLJ_KONDO_TEST_ENV=native lein test (or the Windows cmd.exe equivalent)

Phase 3:

  • port script/test to script/test.bat
  • hook up the JVM tests + native tests to the AppVeyor build

Contributions may be PRed to the windows-tests branch.

@borkdude borkdude added the test label Jun 4, 2019
@borkdude borkdude added the help wanted Extra attention is needed label Jun 19, 2019
@borkdude borkdude added the starter issue https://clojureverse.org/t/clj-kondo-starter-issues/4594 label Nov 23, 2019
@sogaiu
Copy link
Contributor

sogaiu commented Nov 24, 2019

Here's some output from running lein test in a Windows VM:

clj-kondo-windows-lein-test-output.txt

@sogaiu
Copy link
Contributor

sogaiu commented Nov 24, 2019

Following is with 594a023

powershell.txt
command-prompt.txt

@littleli
Copy link

clj-kondo-windows-lein-test-output2.txt
mine output, number of failed tests is different (3 less in my case)

@sogaiu
Copy link
Contributor

sogaiu commented Nov 24, 2019

@sogaiu
Copy link
Contributor

sogaiu commented Nov 24, 2019

Are the following sorts of changes appropriate?

diff --git a/test/clj_kondo/main_test.clj b/test/clj_kondo/main_test.clj
index 6f36481..32128bb 100644
--- a/test/clj_kondo/main_test.clj
+++ b/test/clj_kondo/main_test.clj
@@ -14,14 +14,15 @@
 
 (deftest inline-def-test
   (let [linted (lint! (io/file "corpus" "inline_def.clj") "--config" "{:linters {:redefined-var {:level :off}}}")
-        row-col-files (set (map #(select-keys % [:row :col :file])
-                                linted))]
-    (is (= #{{:row 5, :col 3, :file "corpus/inline_def.clj"}
-             {:row 8, :col 3, :file "corpus/inline_def.clj"}
-             {:row 10, :col 10, :file "corpus/inline_def.clj"}
-             {:row 12, :col 16, :file "corpus/inline_def.clj"}
-             {:row 14, :col 18, :file "corpus/inline_def.clj"}}
-           row-col-files))
+        row-col-files (map #(select-keys % [:row :col :file])
+                                linted)]
+    (assert-submaps
+      '({:row 5, :col 3, :file "corpus/inline_def.clj"}
+        {:row 8, :col 3, :file "corpus/inline_def.clj"}
+        {:row 10, :col 10, :file "corpus/inline_def.clj"}
+        {:row 12, :col 16, :file "corpus/inline_def.clj"}
+        {:row 14, :col 18, :file "corpus/inline_def.clj"})
+      row-col-files)
     (is (= #{"inline def"} (set (map :message linted)))))
   (doseq [lang [:clj :cljs]]
     (is (empty? (lint! "(defmacro foo [] `(def x 1))" "--lang" (name lang))))
@@ -29,12 +30,13 @@
 
 (deftest redundant-let-test
   (let [linted (lint! (io/file "corpus" "redundant_let.clj"))
-        row-col-files (set (map #(select-keys % [:row :col :file])
-                                linted))]
-    (is (= #{{:row 4, :col 3, :file "corpus/redundant_let.clj"}
-             {:row 8, :col 3, :file "corpus/redundant_let.clj"}
-             {:row 12, :col 3, :file "corpus/redundant_let.clj"}}
-           row-col-files))
+        row-col-files (map #(select-keys % [:row :col :file])
+                                linted)]
+    (assert-submaps
+      '({:row 4, :col 3, :file "corpus/redundant_let.clj"}
+        {:row 8, :col 3, :file "corpus/redundant_let.clj"}
+        {:row 12, :col 3, :file "corpus/redundant_let.clj"})
+      row-col-files)
     (is (= #{"Redundant let expression."} (set (map :message linted)))))
   (assert-submaps '({:file "<stdin>", :row 1, :col 12, :level :warning, :message #"Redundant let"})
                   (lint! "(let [x 2] (let [y 1]))" "--lang" "cljs"))
@@ -112,10 +114,11 @@
     (is (= 1 (count (lint! "(defn xinc [x] (+ x 1)) #(-> % xinc (xinc 1))")))))
   (testing "only invalid calls after definition are caught"
     (let [linted (lint! (io/file "corpus" "invalid_arity" "order.clj"))
-          row-col-files (set (map #(select-keys % [:row :col :file])
-                                  linted))]
-      (is (= #{{:row 9, :col 1, :file "corpus/invalid_arity/order.clj"}}
-             row-col-files))))
+          row-col-files (map #(select-keys % [:row :col :file])
+                                  linted)]
+      (assert-submaps
+        '({:row 9, :col 1, :file "corpus/invalid_arity/order.clj"})
+        row-col-files)))
   (testing "varargs"
     (is (some? (seq (lint! "(defn foo [x & xs]) (foo)"))))
     (is (empty? (lint! "(defn foo [x & xs]) (foo 1 2 3)"))))
@@ -207,12 +210,13 @@
 
 (deftest exclude-clojure-test
   (let [linted (lint! (io/file "corpus" "exclude_clojure.clj"))]
-    (is (= '({:file "corpus/exclude_clojure.clj",
-              :row 12,
-              :col 1,
-              :level :error,
-              :message "clojure.core/get is called with 4 args but expects 2"})
-           linted))))
+    (assert-submaps
+      '({:file "corpus/exclude_clojure.clj",
+         :row 12,
+         :col 1,
+         :level :error,
+         :message "clojure.core/get is called with 4 args but expects 2"})
+      linted)))
 
 (deftest private-call-test
   (assert-submaps '({:file "corpus/private/private_calls.clj",
@@ -235,36 +239,38 @@
 (deftest read-error-test
   (testing "when an error happens in one file, the other file is still linted"
     (let [linted (lint! (io/file "corpus" "read_error"))]
-      (is (= '({:file "corpus/read_error/error.clj",
-                :row 1,
-                :col 1,
-                :level :error,
-                :message "Found an opening ( with no matching )"}
-               {:file "corpus/read_error/error.clj"
-                :row 2,
-                :col 1,
-                :level :error,
-                :message "Expected a ) to match ( from line 1"}
-               {:file "corpus/read_error/ok.clj",
-                :row 6,
-                :col 1,
-                :level :error,
-                :message "read-error.ok/foo is called with 1 arg but expects 0"})
-             linted)))))
+      (assert-submaps
+        '({:file "corpus/read_error/error.clj",
+           :row 1,
+           :col 1,
+           :level :error,
+           :message "Found an opening ( with no matching )"}
+          {:file "corpus/read_error/error.clj"
+           :row 2,
+           :col 1,
+           :level :error,
+           :message "Expected a ) to match ( from line 1"}
+          {:file "corpus/read_error/ok.clj",
+           :row 6,
+           :col 1,
+           :level :error,
+           :message "read-error.ok/foo is called with 1 arg but expects 0"})
+        linted))))
 
 (deftest nested-namespaced-maps-test
-  (is (= '({:file "corpus/nested_namespaced_maps.clj",
-            :row 9,
-            :col 1,
-            :level :error,
-            :message
-            "nested-namespaced-maps/test-fn is called with 2 args but expects 1"}
-           {:file "corpus/nested_namespaced_maps.clj",
-            :row 11,
-            :col 12,
-            :level :error,
-            :message "duplicate key :a"})
-         (lint! (io/file "corpus" "nested_namespaced_maps.clj"))))
+  (assert-submaps
+    '({:file "corpus/nested_namespaced_maps.clj",
+       :row 9,
+       :col 1,
+       :level :error,
+       :message
+       "nested-namespaced-maps/test-fn is called with 2 args but expects 1"}
+      {:file "corpus/nested_namespaced_maps.clj",
+       :row 11,
+       :col 12,
+       :level :error,
+       :message "duplicate key :a"})
+    (lint! (io/file "corpus" "nested_namespaced_maps.clj")))
   (is (empty? (lint! "(meta ^#:foo{:a 1} {})"))))
 
 (deftest exit-code-test

@sogaiu
Copy link
Contributor

sogaiu commented Nov 24, 2019

With the previous patch applied to 7473998, for 1.9.0, I'm now getting:

==== Testing JVM version 1.9.0

lein test clj-kondo.main-test

lein test :only clj-kondo.main-test/import-vars-test

ERROR in (import-vars-test) (ProcessBuilder.java:1128)
Uncaught exception, not in assertion.
expected: nil
  actual: java.io.IOException: Cannot run program "mv": CreateProcess error=2, The system cannot find the file specified
 at java.lang.ProcessBuilder.start (ProcessBuilder.java:1128)
    java.lang.ProcessBuilder.start (ProcessBuilder.java:1071)
    me.raynes.conch.low_level$proc.invokeStatic (low_level.clj:33)
    me.raynes.conch.low_level$proc.doInvoke (low_level.clj:7)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:659)
    clojure.core$apply.invoke (core.clj:652)
    me.raynes.conch$run_command.invokeStatic (conch.clj:203)
    me.raynes.conch$run_command.invoke (conch.clj:202)
    me.raynes.conch$execute.invokeStatic (conch.clj:249)
    me.raynes.conch$execute.doInvoke (conch.clj:240)
    clojure.lang.RestFn.applyTo (RestFn.java:139)
    clojure.core$apply.invokeStatic (core.clj:659)
    clojure.core$apply.invoke (core.clj:652)
    clj_kondo.main_test$mv.invokeStatic (main_test.clj:13)
    clj_kondo.main_test$mv.doInvoke (main_test.clj:13)
    clojure.lang.RestFn.invoke (RestFn.java:421)
    clj_kondo.main_test$fn__15055.invokeStatic (main_test.clj:2158)
    clj_kondo.main_test/fn (main_test.clj:2142)
    clojure.test$test_var$fn__9209.invoke (test.clj:716)
    clojure.test$test_var.invokeStatic (test.clj:716)
    clojure.test$test_var.invoke (test.clj:707)
    clojure.test$test_vars$fn__9235$fn__9240.invoke (test.clj:734)
    clojure.test$default_fixture.invokeStatic (test.clj:686)
    clojure.test$default_fixture.invoke (test.clj:682)
    clojure.test$test_vars$fn__9235.invoke (test.clj:734)
    clojure.test$default_fixture.invokeStatic (test.clj:686)
    clojure.test$default_fixture.invoke (test.clj:682)
    clojure.test$test_vars.invokeStatic (test.clj:730)
    clojure.test$test_all_vars.invokeStatic (test.clj:736)
    clojure.test$test_ns.invokeStatic (test.clj:757)
    clojure.test$test_ns.invoke (test.clj:742)
    user$eval233$fn__354.invoke (form-init8000539635554126728.clj:1)
    clojure.lang.AFn.applyToHelper (AFn.java:156)
    clojure.lang.AFn.applyTo (AFn.java:144)
    clojure.core$apply.invokeStatic (core.clj:659)
    clojure.core$apply.invoke (core.clj:652)
    leiningen.core.injected$compose_hooks$fn__163.doInvoke (form-init8000539635554126728.clj:1)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:657)
    clojure.core$apply.invoke (core.clj:652)
    leiningen.core.injected$run_hooks.invokeStatic (form-init8000539635554126728.clj:1)
    leiningen.core.injected$run_hooks.invoke (form-init8000539635554126728.clj:1)
    leiningen.core.injected$prepare_for_hooks$fn__168$fn__169.doInvoke (form-init8000539635554126728.clj:1)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:29)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.core$map$fn__5587.invoke (core.clj:2747)
    clojure.lang.LazySeq.sval (LazySeq.java:40)
    clojure.lang.LazySeq.seq (LazySeq.java:49)
    clojure.lang.Cons.next (Cons.java:39)
    clojure.lang.RT.boundedLength (RT.java:1785)
    clojure.lang.RestFn.applyTo (RestFn.java:130)
    clojure.core$apply.invokeStatic (core.clj:659)
    clojure.test$run_tests.invokeStatic (test.clj:767)
    clojure.test$run_tests.doInvoke (test.clj:767)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:657)
    clojure.core$apply.invoke (core.clj:652)
    user$eval233$fn__366$fn__419.invoke (form-init8000539635554126728.clj:1)
    user$eval233$fn__366$fn__367.invoke (form-init8000539635554126728.clj:1)
    user$eval233$fn__366.invoke (form-init8000539635554126728.clj:1)
    user$eval233.invokeStatic (form-init8000539635554126728.clj:1)
    user$eval233.invoke (form-init8000539635554126728.clj:1)
    clojure.lang.Compiler.eval (Compiler.java:7062)
    clojure.lang.Compiler.eval (Compiler.java:7052)
    clojure.lang.Compiler.load (Compiler.java:7514)
    clojure.lang.Compiler.loadFile (Compiler.java:7452)
    clojure.main$load_script.invokeStatic (main.clj:278)
    clojure.main$init_opt.invokeStatic (main.clj:280)
    clojure.main$init_opt.invoke (main.clj:280)
    clojure.main$initialize.invokeStatic (main.clj:311)
    clojure.main$null_opt.invokeStatic (main.clj:345)
    clojure.main$null_opt.invoke (main.clj:342)
    clojure.main$main.invokeStatic (main.clj:424)
    clojure.main$main.doInvoke (main.clj:387)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.Var.applyTo (Var.java:702)
    clojure.main.main (main.java:37)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
 at java.lang.ProcessImpl.create (ProcessImpl.java:-2)
    java.lang.ProcessImpl.<init> (ProcessImpl.java:478)
    java.lang.ProcessImpl.start (ProcessImpl.java:154)
    java.lang.ProcessBuilder.start (ProcessBuilder.java:1107)
    java.lang.ProcessBuilder.start (ProcessBuilder.java:1071)
    me.raynes.conch.low_level$proc.invokeStatic (low_level.clj:33)
    me.raynes.conch.low_level$proc.doInvoke (low_level.clj:7)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:659)
    clojure.core$apply.invoke (core.clj:652)
    me.raynes.conch$run_command.invokeStatic (conch.clj:203)
    me.raynes.conch$run_command.invoke (conch.clj:202)
    me.raynes.conch$execute.invokeStatic (conch.clj:249)
    me.raynes.conch$execute.doInvoke (conch.clj:240)
    clojure.lang.RestFn.applyTo (RestFn.java:139)
    clojure.core$apply.invokeStatic (core.clj:659)
    clojure.core$apply.invoke (core.clj:652)
    clj_kondo.main_test$mv.invokeStatic (main_test.clj:13)
    clj_kondo.main_test$mv.doInvoke (main_test.clj:13)
    clojure.lang.RestFn.invoke (RestFn.java:421)
    clj_kondo.main_test$fn__15055.invokeStatic (main_test.clj:2158)
    clj_kondo.main_test/fn (main_test.clj:2142)
    clojure.test$test_var$fn__9209.invoke (test.clj:716)
    clojure.test$test_var.invokeStatic (test.clj:716)
    clojure.test$test_var.invoke (test.clj:707)
    clojure.test$test_vars$fn__9235$fn__9240.invoke (test.clj:734)
    clojure.test$default_fixture.invokeStatic (test.clj:686)
    clojure.test$default_fixture.invoke (test.clj:682)
    clojure.test$test_vars$fn__9235.invoke (test.clj:734)
    clojure.test$default_fixture.invokeStatic (test.clj:686)
    clojure.test$default_fixture.invoke (test.clj:682)
    clojure.test$test_vars.invokeStatic (test.clj:730)
    clojure.test$test_all_vars.invokeStatic (test.clj:736)
    clojure.test$test_ns.invokeStatic (test.clj:757)
    clojure.test$test_ns.invoke (test.clj:742)
    user$eval233$fn__354.invoke (form-init8000539635554126728.clj:1)
    clojure.lang.AFn.applyToHelper (AFn.java:156)
    clojure.lang.AFn.applyTo (AFn.java:144)
    clojure.core$apply.invokeStatic (core.clj:659)
    clojure.core$apply.invoke (core.clj:652)
    leiningen.core.injected$compose_hooks$fn__163.doInvoke (form-init8000539635554126728.clj:1)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:657)
    clojure.core$apply.invoke (core.clj:652)
    leiningen.core.injected$run_hooks.invokeStatic (form-init8000539635554126728.clj:1)
    leiningen.core.injected$run_hooks.invoke (form-init8000539635554126728.clj:1)
    leiningen.core.injected$prepare_for_hooks$fn__168$fn__169.doInvoke (form-init8000539635554126728.clj:1)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.AFunction$1.doInvoke (AFunction.java:29)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.core$map$fn__5587.invoke (core.clj:2747)
    clojure.lang.LazySeq.sval (LazySeq.java:40)
    clojure.lang.LazySeq.seq (LazySeq.java:49)
    clojure.lang.Cons.next (Cons.java:39)
    clojure.lang.RT.boundedLength (RT.java:1785)
    clojure.lang.RestFn.applyTo (RestFn.java:130)
    clojure.core$apply.invokeStatic (core.clj:659)
    clojure.test$run_tests.invokeStatic (test.clj:767)
    clojure.test$run_tests.doInvoke (test.clj:767)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invokeStatic (core.clj:657)
    clojure.core$apply.invoke (core.clj:652)
    user$eval233$fn__366$fn__419.invoke (form-init8000539635554126728.clj:1)
    user$eval233$fn__366$fn__367.invoke (form-init8000539635554126728.clj:1)
    user$eval233$fn__366.invoke (form-init8000539635554126728.clj:1)
    user$eval233.invokeStatic (form-init8000539635554126728.clj:1)
    user$eval233.invoke (form-init8000539635554126728.clj:1)
    clojure.lang.Compiler.eval (Compiler.java:7062)
    clojure.lang.Compiler.eval (Compiler.java:7052)
    clojure.lang.Compiler.load (Compiler.java:7514)
    clojure.lang.Compiler.loadFile (Compiler.java:7452)
    clojure.main$load_script.invokeStatic (main.clj:278)
    clojure.main$init_opt.invokeStatic (main.clj:280)
    clojure.main$init_opt.invoke (main.clj:280)
    clojure.main$initialize.invokeStatic (main.clj:311)
    clojure.main$null_opt.invokeStatic (main.clj:345)
    clojure.main$null_opt.invoke (main.clj:342)
    clojure.main$main.invokeStatic (main.clj:424)
    clojure.main$main.doInvoke (main.clj:387)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.lang.Var.applyTo (Var.java:702)
    clojure.main.main (main.java:37)

Ran 83 tests containing 671 assertions.
0 failures, 1 errors.
Tests failed.

@sogaiu
Copy link
Contributor

sogaiu commented Nov 25, 2019

Looks like the new remove-dirs, make-dirs, and supporting friends in cache_test.clj might be useful for this last situation.

Would putting them in test_utils.clj make sense?

I also tried out:

(defn rename-path [old new]
  (if windows?
    (.renameTo (io/file old) (io/file new))
    (mv old new)))

as a replacement for mv in main_test.clj.

With these last pieces in place, the remaining bits that have errors for me are 3 things in cache_test.clj, brielfy:

FAIL in (cache-test) (cache_test.clj:84)
FAIL in (cache-test) (cache_test.clj:121)
FAIL in (cache-test) (cache_test.clj:121)

in full (problems only showed up for 1.10.1, not in 1.9.0):

"Testing with Clojure 1.10.1"
==== Testing JVM version 1.10.1
==== Testing JVM version 1.10.1

lein test clj-kondo.analysis-test

lein test clj-kondo.compojure-test

lein test clj-kondo.core-test

lein test clj-kondo.datalog-test

lein test clj-kondo.impl.analyzer-test

lein test clj-kondo.impl.cache-test

lein test :only clj-kondo.impl.cache-test/cache-test

FAIL in (cache-test) (cache_test.clj:84)
arity checks work in all languages linting only bar and using the cache option
expected: (str/includes? (:message (first output)) "foo/foo is called with 3 args but expects 1")
  actual: (not (str/includes? "foo/foo is called with 3 args but expects 2" "foo/foo is called with 3 args but expects 1"))

lein test :only clj-kondo.impl.cache-test/cache-test

FAIL in (cache-test) (cache_test.clj:121)
arity checks work in clj -> cljc and cljs -> cljc
expected: (str/includes? (:message (first output)) "foo/foo is called with 3 args but expects 1")
  actual: (not (str/includes? "foo/foo is called with 3 args but expects 2" "foo/foo is called with 3 args but expects 1"))

lein test :only clj-kondo.impl.cache-test/cache-test

FAIL in (cache-test) (cache_test.clj:121)
arity checks work in clj -> cljc and cljs -> cljc
expected: (str/includes? (:message (first output)) "foo/foo is called with 3 args but expects 1")
  actual: (not (str/includes? "foo/foo is called with 3 args but expects 2" "foo/foo is called with 3 args but expects 1"))

lein test clj-kondo.impl.core-test

lein test clj-kondo.impl.extract-var-info-test

lein test clj-kondo.impl.macroexpand-test

lein test clj-kondo.impl.namespace-test

lein test clj-kondo.impl.parser-test

lein test clj-kondo.impl.types-test

lein test clj-kondo.impl.utils-test

lein test clj-kondo.main-test

lein test clj-kondo.profile

lein test clj-kondo.test-test

lein test clj-kondo.test-utils

lein test clj-kondo.types-test

lein test clj-kondo.unresolved-symbol-test

lein test clj-kondo.unused-import-test

Ran 120 tests containing 1207 assertions.
3 failures, 0 errors.
Tests failed.
Error encountered performing task 'do' with profile(s): 'base,system,user,provided,dev,clojure-1.10.1'
Tests failed.

@sogaiu
Copy link
Contributor

sogaiu commented Nov 25, 2019

#629 Has various bits, but does not address the 3 cache_test.clj FAILS.

@sogaiu
Copy link
Contributor

sogaiu commented Nov 25, 2019

A portion of output from running tests natively, with a modified main.clj:

                     (println "Unexpected error. Please report an issue.")
                     ;; XXX
                     (println "  "(.getMessage e))
                     ;; XXX
                     (.printStackTrace e (PrintWriter. *out*))

to display exception messages and stacktraces:

lein test clj-kondo.main-test
Unexpected error. Please report an issue.
   clojure.lang.Symbol cannot be cast to java.lang.String
java.lang.ClassCastException: clojure.lang.Symbol cannot be cast to java.lang.String
        at clojure.core$re_pattern.invokeStatic(core.clj:4785)
        at clj_kondo.impl.core$filter_findings$iter__6155__6159$fn__6160$fn__6161$fn__6165.invoke(core.clj:303)
        at clojure.core$some.invokeStatic(core.clj:2693)
        at clojure.core$some.invoke(core.clj:2684)
        at clojure.core$comp$fn__5529.invoke(core.clj:2562)
        at clj_kondo.impl.core$filter_findings$iter__6155__6159$fn__6160$fn__6161.invoke(core.clj:303)
        at clj_kondo.impl.core$filter_findings$iter__6155__6159$fn__6160.invoke(core.clj:290)
        at clojure.lang.LazySeq.sval(LazySeq.java:40)
        at clojure.lang.LazySeq.seq(LazySeq.java:49)
        at clojure.lang.RT.seq(RT.java:528)
        at clojure.core$seq__5124.invokeStatic(core.clj:137)
        at clojure.core$sort.invokeStatic(core.clj:3105)
        at clojure.core$sort_by.invokeStatic(core.clj:3111)
        at clojure.core$sort_by.invokeStatic(core.clj:3111)
        at clj_kondo.core$run_BANG_.invokeStatic(core.clj:97)
        at clj_kondo.main$main.invokeStatic(main.clj:86)
        at clj_kondo.main$main.doInvoke(main.clj:79)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:657)
        at clj_kondo.main$_main$fn__6289.invoke(main.clj:105)
        at clj_kondo.main$_main.invokeStatic(main.clj:105)
        at clj_kondo.main$_main.doInvoke(main.clj:103)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clj_kondo.main.main(Unknown Source)
Unexpected error. Please report an issue.
   clojure.lang.Symbol cannot be cast to java.lang.String
java.lang.ClassCastException: clojure.lang.Symbol cannot be cast to java.lang.String
        at clojure.core$re_pattern.invokeStatic(core.clj:4785)
        at clj_kondo.impl.core$filter_findings$iter__6155__6159$fn__6160$fn__6161$fn__6163.invoke(core.clj:299)
        at clojure.core$some.invokeStatic(core.clj:2693)
        at clj_kondo.impl.core$filter_findings$iter__6155__6159$fn__6160$fn__6161.invoke(core.clj:298)
        at clj_kondo.impl.core$filter_findings$iter__6155__6159$fn__6160.invoke(core.clj:290)
        at clojure.lang.LazySeq.sval(LazySeq.java:40)
        at clojure.lang.LazySeq.seq(LazySeq.java:49)
        at clojure.lang.RT.seq(RT.java:528)
        at clojure.core$seq__5124.invokeStatic(core.clj:137)
        at clojure.core$sort.invokeStatic(core.clj:3105)
        at clojure.core$sort_by.invokeStatic(core.clj:3111)
        at clojure.core$sort_by.invokeStatic(core.clj:3111)
        at clj_kondo.core$run_BANG_.invokeStatic(core.clj:97)
        at clj_kondo.main$main.invokeStatic(main.clj:86)
        at clj_kondo.main$main.doInvoke(main.clj:79)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:657)
        at clj_kondo.main$_main$fn__6289.invoke(main.clj:105)
        at clj_kondo.main$_main.invokeStatic(main.clj:105)
        at clj_kondo.main$_main.doInvoke(main.clj:103)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clj_kondo.main.main(Unknown Source)
Unexpected error. Please report an issue.
   Unsupported character: \\.specs$
java.lang.RuntimeException: Unsupported character: \\.specs$
        at clojure.lang.Util.runtimeException(Util.java:221)
        at clojure.lang.EdnReader$CharacterReader.invoke(EdnReader.java:639)
        at clojure.lang.EdnReader.readDelimitedList(EdnReader.java:757)
        at clojure.lang.EdnReader$VectorReader.invoke(EdnReader.java:672)
        at clojure.lang.EdnReader.readDelimitedList(EdnReader.java:757)
        at clojure.lang.EdnReader$MapReader.invoke(EdnReader.java:680)
        at clojure.lang.EdnReader.readDelimitedList(EdnReader.java:757)
        at clojure.lang.EdnReader$MapReader.invoke(EdnReader.java:680)
        at clojure.lang.EdnReader.readDelimitedList(EdnReader.java:757)
        at clojure.lang.EdnReader$MapReader.invoke(EdnReader.java:680)
        at clojure.lang.EdnReader.read(EdnReader.java:145)
        at clojure.lang.EdnReader.read(EdnReader.java:111)
        at clojure.lang.EdnReader.readString(EdnReader.java:67)
        at clojure.edn$read_string.invokeStatic(edn.clj:46)
        at clojure.edn$read_string.invokeStatic(edn.clj:37)
        at clj_kondo.impl.core$resolve_config.invokeStatic(core.clj:63)
        at clj_kondo.core$run_BANG_.invokeStatic(core.clj:83)
        at clj_kondo.main$main.invokeStatic(main.clj:86)
        at clj_kondo.main$main.doInvoke(main.clj:79)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:657)
        at clj_kondo.main$_main$fn__6289.invoke(main.clj:105)
        at clj_kondo.main$_main.invokeStatic(main.clj:105)
        at clj_kondo.main$_main.doInvoke(main.clj:103)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clj_kondo.main.main(Unknown Source)
Unexpected error. Please report an issue.
   Unsupported character: \\.specs$
java.lang.RuntimeException: Unsupported character: \\.specs$
        at clojure.lang.Util.runtimeException(Util.java:221)
        at clojure.lang.EdnReader$CharacterReader.invoke(EdnReader.java:639)
        at clojure.lang.EdnReader.readDelimitedList(EdnReader.java:757)
        at clojure.lang.EdnReader$VectorReader.invoke(EdnReader.java:672)
        at clojure.lang.EdnReader.readDelimitedList(EdnReader.java:757)
        at clojure.lang.EdnReader$MapReader.invoke(EdnReader.java:680)
        at clojure.lang.EdnReader.readDelimitedList(EdnReader.java:757)
        at clojure.lang.EdnReader$MapReader.invoke(EdnReader.java:680)
        at clojure.lang.EdnReader.readDelimitedList(EdnReader.java:757)
        at clojure.lang.EdnReader$MapReader.invoke(EdnReader.java:680)
        at clojure.lang.EdnReader.read(EdnReader.java:145)
        at clojure.lang.EdnReader.read(EdnReader.java:111)
        at clojure.lang.EdnReader.readString(EdnReader.java:67)
        at clojure.edn$read_string.invokeStatic(edn.clj:46)
        at clojure.edn$read_string.invokeStatic(edn.clj:37)
        at clj_kondo.impl.core$resolve_config.invokeStatic(core.clj:63)
        at clj_kondo.core$run_BANG_.invokeStatic(core.clj:83)
        at clj_kondo.main$main.invokeStatic(main.clj:86)
        at clj_kondo.main$main.doInvoke(main.clj:79)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.core$apply.invokeStatic(core.clj:657)
        at clj_kondo.main$_main$fn__6289.invoke(main.clj:105)
        at clj_kondo.main$_main.invokeStatic(main.clj:105)
        at clj_kondo.main$_main.doInvoke(main.clj:103)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clj_kondo.main.main(Unknown Source)

@borkdude borkdude changed the title make tests Windows-friendly make tests run on Windows CI Nov 25, 2019
@borkdude borkdude removed help wanted Extra attention is needed starter issue https://clojureverse.org/t/clj-kondo-starter-issues/4594 labels Nov 25, 2019
borkdude added a commit that referenced this issue Nov 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants