# `mix ptc.smoke`
[🔗](https://github.com/andreasronge/ptc_runner/blob/main/lib/mix/tasks/ptc.smoke.ex#L1)

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
`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.)

---

*Consult [api-reference.md](api-reference.md) for complete listing*
