kaocha

gleisonsilva 2023-11-16T20:36:02.910359Z

I'm getting this error when trying to test using Kaocha: Wrong number of args (3) passed to: clojure.spec.alpha/amp-impl I've tried changing Clojure version (in deps.edn) as well Kaocha version... but I really don't know why this is happen or where to start digging to figure out... can you, please, point me out some path?

practicalli-johnny 2023-11-17T08:28:17.690609Z

Have you tried Kaocha on another project to help determine if its the Clojure project or Kaocha setup itself?

practicalli-johnny 2023-11-17T08:32:48.341809Z

I usually https://practical.li/clojure/clojure-cli/projects/templates/ and test tools with that to narrow down if it's the tool or the project.

practicalli-johnny 2023-11-17T08:41:33.235009Z

The error suggests to me that the project code (or library dependency) is incorrectly using & with regular expressions and failing during compilation Does all the project code evaluate in the repl without error? Any test runner will fail if the project code doesn't compile correctly.

gleisonsilva 2023-11-16T20:54:01.920359Z

This is my env: openjdk version "11.0.2" 2019-01-15 OpenJDK Runtime Environment 18.9 (build 11.0.2+9) OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode) Clojure CLI version 1.11.1.1347

gleisonsilva 2023-11-16T20:55:24.450639Z

A minimal deps.edn that I've tried, but the error remains:

{:deps    {org.clojure/clojure {:mvn/version "1.11.0"} }

 :paths   ["src" "classes"]

 :aliases {:test
           {:extra-paths ["test"]
            :extra-deps {lambdaisland/kaocha {:mvn/version "1.87.1366"}}
            :main-opts ["-m" "kaocha.runner" #_"--watch" #_"--no-capture-output" "--fail-fast"]} }}

plexus 2023-11-20T07:16:47.436579Z

I'm failing to reproduce this. With this deps.edn, and a single test test/foo_test.clj

(ns foo-test
  (:require [clojure.test :refer :all]))

(deftest foo
  (is (= 1 2)))
➜ clojure --version ; java -version
Clojure CLI version 1.11.1.1386
openjdk version "11.0.20.1" 2023-08-24
OpenJDK Runtime Environment Temurin-11.0.20.1+1 (build 11.0.20.1+1)
OpenJDK 64-Bit Server VM Temurin-11.0.20.1+1 (build 11.0.20.1+1, mixed mode)
clojure -A:test
WARNING: Did not load a configuration file and using the defaults.
This is fine for experimenting, but for long-term use, we recommend creating a configuration file to avoid changes in behavior between releases.
To create a configuration file using the current defaults and configuration file location, create a file named tests.edn that contains '#kaocha/v1 {}'.
[(F)]
Randomized with --seed 1139706614

FAIL in foo-test/foo (foo_test.clj:5)
Expected:
  1
Actual:
  -1 +2
1 tests, 1 assertions, 1 failures.
There's clearly more going on here. I see a runner.clj in your stacktrace, for instance. A git repo that reproduces the issue would be much appreciated.

plexus 2023-11-20T07:19:19.367659Z

Ah I see in the #testing channel that the issue was resolved, and was indeed not related to kaocha. Glad you figured it out.

gleisonsilva 2023-11-16T20:55:37.029339Z

Execution error (ArityException) at clojure.core.specs.alpha/fn (alpha.clj:107).
Wrong number of args (3) passed to: clojure.spec.alpha/amp-impl

gleisonsilva 2023-11-16T20:56:35.910159Z

The full error report:

{:clojure.main/message
 "Execution error (ArityException) at clojure.core.specs.alpha/fn (alpha.clj:107).\nWrong number of args (3) passed to: clojure.spec.alpha/amp-impl\n",
 :clojure.main/triage
 {:clojure.error/class clojure.lang.ArityException,
  :clojure.error/line 107,
  :clojure.error/cause
  "Wrong number of args (3) passed to: clojure.spec.alpha/amp-impl",
  :clojure.error/symbol clojure.core.specs.alpha/fn,
  :clojure.error/source "alpha.clj",
  :clojure.error/phase :execution},
 :clojure.main/trace
 {:via
  [{:type clojure.lang.Compiler$CompilerException,
    :message
    "Syntax error macroexpanding at (kaocha/version_check.clj:1:1).",
    :data
    {:clojure.error/phase :execution,
     :clojure.error/line 1,
     :clojure.error/column 1,
     :clojure.error/source "kaocha/version_check.clj"},
    :at [clojure.lang.Compiler load "Compiler.java" 7665]}
   {:type java.lang.ExceptionInInitializerError,
    :at [java.lang.Class forName0 "Class.java" -2]}
   {:type clojure.lang.ArityException,
    :message
    "Wrong number of args (3) passed to: clojure.spec.alpha/amp-impl",
    :at [clojure.lang.AFn throwArity "AFn.java" 429]}],
  :trace
  [[clojure.lang.AFn throwArity "AFn.java" 429]
   [clojure.lang.AFn invoke "AFn.java" 40]
   [clojure.core.specs.alpha$fn__59 invokeStatic "alpha.clj" 107]
   [clojure.core.specs.alpha$fn__59 invoke "alpha.clj" 107]
   [clojure.core.specs.alpha__init load nil 107]
   [clojure.core.specs.alpha__init <clinit> nil -1]
   [java.lang.Class forName0 "Class.java" -2]
   [java.lang.Class forName "Class.java" 398]
   [clojure.lang.RT classForName "RT.java" 2209]
   [clojure.lang.RT classForName "RT.java" 2218]
   [clojure.lang.RT loadClassForName "RT.java" 2237]
   [clojure.lang.RT load "RT.java" 449]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.lang.Compiler ensureMacroCheck "Compiler.java" 6975]
   [clojure.lang.Compiler checkSpecs "Compiler.java" 6987]
   [clojure.lang.Compiler macroexpand1 "Compiler.java" 7005]
   [clojure.lang.Compiler macroexpand "Compiler.java" 7092]
   [clojure.lang.Compiler eval "Compiler.java" 7178]
   [clojure.lang.Compiler load "Compiler.java" 7653]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6908 invoke "core.clj" 6161]
   [clojure.core$load invokeStatic "core.clj" 6160]
   [clojure.core$load doInvoke "core.clj" 6144]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5933]
   [clojure.core$load_one invoke "core.clj" 5928]
   [clojure.core$load_lib$fn__6850 invoke "core.clj" 5975]
   [clojure.core$load_lib invokeStatic "core.clj" 5974]
   [clojure.core$load_lib doInvoke "core.clj" 5953]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$load_libs invokeStatic "core.clj" 6016]
   [clojure.core$load_libs doInvoke "core.clj" 6000]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$require invokeStatic "core.clj" 6038]
   [clojure.core$require doInvoke "core.clj" 6038]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [user$eval1 invokeStatic "runner.clj" 1]
   [user$eval1 invoke "runner.clj" 1]
   [clojure.lang.Compiler eval "Compiler.java" 7194]
   [clojure.lang.Compiler load "Compiler.java" 7653]
   [clojure.lang.RT loadResourceScript "RT.java" 381]
   [clojure.lang.RT loadResourceScript "RT.java" 372]
   [clojure.lang.RT load "RT.java" 459]
   [clojure.lang.RT load "RT.java" 424]
   [clojure.core$load$fn__6908 invoke "core.clj" 6161]
   [clojure.core$load invokeStatic "core.clj" 6160]
   [clojure.core$load doInvoke "core.clj" 6144]
   [clojure.lang.RestFn invoke "RestFn.java" 408]
   [clojure.core$load_one invokeStatic "core.clj" 5933]
   [clojure.core$load_one invoke "core.clj" 5928]
   [clojure.core$load_lib$fn__6850 invoke "core.clj" 5975]
   [clojure.core$load_lib invokeStatic "core.clj" 5974]
   [clojure.core$load_lib doInvoke "core.clj" 5953]
   [clojure.lang.RestFn applyTo "RestFn.java" 142]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$load_libs invokeStatic "core.clj" 6016]
   [clojure.core$load_libs doInvoke "core.clj" 6000]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.core$apply invokeStatic "core.clj" 669]
   [clojure.core$require invokeStatic "core.clj" 6038]
   [clojure.main$main_opt invokeStatic "main.clj" 514]
   [clojure.main$main_opt invoke "main.clj" 510]
   [clojure.main$main invokeStatic "main.clj" 664]
   [clojure.main$main doInvoke "main.clj" 616]
   [clojure.lang.RestFn applyTo "RestFn.java" 137]
   [clojure.lang.Var applyTo "Var.java" 705]
   [clojure.main main "main.java" 40]],
  :cause
  "Wrong number of args (3) passed to: clojure.spec.alpha/amp-impl",
  :phase :execution}}