diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9b87ad3..9c78af5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,15 +7,31 @@ stages: test: stage: test script: - - nim c -o:cljnim src/cljnim.nim - - nim c -r tests/test_reader.nim - - nim c -r tests/test_emitter.nim - - nim c -r tests/test_pvec.nim - - nim c -r tests/test_pmap.nim - - ./cljnim compile examples/hello.clj /tmp/hello.nim - - nim c --path:lib -r /tmp/hello.nim - - ./cljnim compile examples/math.clj /tmp/math.nim - - nim c --path:lib -r /tmp/math.nim + - make test + - make build + - echo "=== hello ===" && ./cljnim run examples/hello.clj + - echo "=== core ===" && ./cljnim run examples/core.clj + - echo "=== math ===" && ./cljnim run examples/math.clj + - echo "=== macros ===" && ./cljnim run examples/macros.clj + - echo "=== ai_tools ===" && ./cljnim run examples/ai_tools.clj || true + - echo "=== ffi ===" && ./cljnim run examples/ffi.clj + - echo "=== interop ===" && ./cljnim run examples/interop.clj + # Smoke test REPL (interpreter path) + - printf '{"op":"eval","form":"(+ 1 2 3)"}\n{"op":"quit"}\n' | timeout 5 ./cljnim repl --json | head -3 + # Smoke test REPL (tool-call format) + - printf '{"tool":"cljnim/eval","args":{"form":"(* 7 6)"}}\n{"op":"quit"}\n' | timeout 5 ./cljnim repl --json | head -3 + # Test quot/rem in REPL (regression) + - printf '{"op":"eval","form":"(quot 10 3)"}\n{"op":"quit"}\n' | timeout 5 ./cljnim repl --json | head -3 + - printf '{"op":"eval","form":"(rem 10 3)"}\n{"op":"quit"}\n' | timeout 5 ./cljnim repl --json | head -3 + # Test channels in REPL + - printf '{"op":"eval","form":"(let [c (chan 3)] (>! c 42) (