ByteBufferの使用がバイナリ互換性を破壊するケース

ClojureコードをコンパイルするとJVMバイトコードが生成される。一般的には、使用するClojureのパージョンさえ固定すれば、 どのような環境でコンパイルしてもコンパイル結果として得られるバイトコードは基本的に同じはずだ。

しかし、「どのバージョンのJava上でコンパイルしたバイトコードか」が問題になる特殊なケースがあるらしい(実際に遭遇した)ので、記録のためにメモしておく。

ClojureScriptでテストが失敗したときにexit(1)する

CIでテストを回す場合、テストに失敗したときにCI自体も失敗してくれると嬉しい。

Clojureだと、lein testでテストする場合でもtest-runnerでテストする場合でも、 テストが失敗するとexit(1)してくれるのでテストの失敗をCIも認識してくれる。

自分で簡単なテストランナーを書く場合でも以下のようにすれば実現できる: