Runs .clj files through both PTC-Lisp and Babashka/Clojure, comparing results.
Usage
mix ptc.smoke # Run all smoke tests (using Babashka)
mix ptc.smoke --clj # Use Clojure CLI instead of Babashka
mix ptc.smoke --verbose # Show detailed outputTest Files
Place .clj files in test/smoke/. Each file should be valid in both
PTC-Lisp and Clojure/Babashka (avoid PTC-specific features like memory/,
tool/, data/, call).
Output Normalization
Results are normalized before comparison to handle expected differences:
- Map key ordering (PTC-Lisp sorts alphabetically)
- Vectors vs lists (both treated as sequences)
- Boolean map keys (
:true/:falsevstrue/false)
Exit Codes
- 0: All tests passed
- 1: Some tests failed
- 2: Setup error (Babashka/Clojure not found, etc.)