feat: read N/M/ratio/radix/exponent number literals; clean suite measurement
Reader gaps caused the clojure-test-suite worker to crash whole deftests on literals it could not parse (0N, 1.5M, 2r1010, 1/2), losing every assertion in the file. read-number now handles: - N (bigint) / M (bigdec) suffixes -> plain number (Jolt has no bignum/bigdec) - ratios a/b -> double quotient - radix integers NrDDD (2r1010, 16rFF, 36rZ) parsed by base - exponents (1e3, 1.5e-2) and 0X hex Also fixed suite measurement: when-var-exists now skips silently (its SKIP print to stdout was corrupting the worker's count line, dropping whole files), and the worker emits counts on an @@COUNTS sentinel line (robust against test bodies that print, e.g. with-out-str). Runner parses the sentinel; deftest crashes now report the underlying message. Impact: clojure-test-suite 210->231 files run, pass 1955->3535, clean files 24->39. Baseline raised to 3450/38. spec: numbers/literal-syntax (13 cases). jpm test green.
This commit is contained in:
parent
20ab88dd0c
commit
acfcf2f94b
5 changed files with 106 additions and 39 deletions
|
|
@ -37,4 +37,10 @@
|
|||
(def p (eval-string ctx "(clojure.test/n-pass)"))
|
||||
(def f (eval-string ctx "(clojure.test/n-fail)"))
|
||||
(def e (eval-string ctx "(clojure.test/n-error)"))
|
||||
(printf "%d %d %d" (if (number? p) p 0) (if (number? f) f 0) (if (number? e) e 0)))
|
||||
# A "dump" 2nd arg (or SUITE_DUMP env) also prints each failure/error message
|
||||
# (one DUMP line each) for triage.
|
||||
(when (or (os/getenv "SUITE_DUMP") (= "dump" (get (dyn :args) 2)))
|
||||
(eval-string ctx "(doseq [m (clojure.test/failures)] (println (str \"DUMP \" m)))"))
|
||||
# Counts on a sentinel line so parsers find it even if a test body printed to
|
||||
# stdout (e.g. with-out-str / println-str tests).
|
||||
(printf "@@COUNTS %d %d %d" (if (number? p) p 0) (if (number? f) f 0) (if (number? e) e 0)))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue