mix ptc.smoke (PtcRunner v0.9.0)

Copy Markdown View Source

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 output

Test 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/:false vs true/false)

Exit Codes

  • 0: All tests passed
  • 1: Some tests failed
  • 2: Setup error (Babashka/Clojure not found, etc.)