itl_expr_cli チュートリアル
このチュートリアルでは、区間ランナーで ITF1788 の .itl ファイルを実行し、演算を選択し、JSON レポートを読む方法を説明します。ランナーは floating-conformance --backend itl として呼び出します。以下では itl でこのコマンドを略記します。
クイックスタート
just conformance build interval
_build/conformance/itl/native/release/build/itl-conformance.exe --backend itl
パスを指定しない場合、ランナーは testdata/interval/smoke.itl を実行し、次のような JSON オブジェクトを 1 つ出力します。
{"schemaVersion":1,"runner":"itl-expression-interpreter","totalCases":…,"executableCases":…,"passedCases":…,"failedCases":0,…}
日常的なタスク
ファイルを実行する
itl .tmp/interval/itf1788/libieeep1788_tests_set.itl
itl a.itl b.itl
パスはファイルでなければならず、指定された順に読み込まれます。
演算を選択する
itl --operation add --operation sub libieeep1788_tests_elem.itl
演算が列挙された名前のいずれかであるケースだけが実行され、集計されます。
サポートされない演算で失敗させる
itl --strict-supported --operation sqrt libieeep1788_tests_elem.itl
このフラグがない場合、サポートされないケースは unsupportedIds に報告されますが、終了ステータスは変わりません。診断ケースは常に終了ステータスに影響します。
さらに進んで
just conformance run intervalはtestdata/interval/interpreter_stages.jsonに列挙されたフェーズ(フェーズごとのファイルと演算)を実行します。--strict-supportedを付けると、すべてのフェーズに strict モードが渡されます。- ケースと合格規則については itl_expr チュートリアル で説明しています。
よくある落とし穴
--jsonオプションはありません。 出力は常に JSON です。--jsonを渡すと未知のオプションとなります(終了コード2)。- シャード分割はありません。 ITL ファイルは小さいため、ツールはフェーズ単位で並列化します。
- 構文解析の診断はすべて
PATH: MESSAGEの形式で出力され、実行は停止します。