あなたのコードに対して広範なテスト(extensive tests)を実行する場合、 そのテストがコードのすべての部分を実行するかどうかを確認する必要が生じることがよくあります。 これを(テスト)カバレッジと呼びます。 ファイル coverage.fs には、 カバレッジと実行頻度を測定するためのツールが含まれています(訳注: gforth に組み込まれて無いので使う時は coverage.fs をロードしてください)。
コード・カバレッジは、 coverage.fs の後にロードされるすべての基本ブロック(逐次実行のコード・シーケンス)にカウント(計数)コードを挿入します。 コードが実行されるたびに、その基本ブロックのカウンター(計数器)がインクリメントされます。 後で、これらの基本ブロックに挿入されたカウント(計数)を含むソース・ファイルを表示できます。
nocov[
( – ) gforth-1.0 “nocov-bracket”
(即実行ワード) 一時的にカバレッジをオフにすることを開始。
]nocov
( – ) gforth-1.0 “bracket-nocov”
(即実行ワード) 一時的にカバレッジをオフにすることを終了。
coverage?
( – f ) gforth-internal “coverage?”
Value: カバレッジ・チェックの オン/オフ
cov+
( – ) gforth-experimental “cov+”
(即実行ワード) ここ(here)にカバレッジ・カウンターを配置します。
?cov+
( flag – flag ) gforth-experimental “?cov+”
(即実行ワード) フラグ(flag)のカバレッジ・カウンター。 カバレッジの出力では、 ?cov
の後ろに 3
つの数字が表示されます。 1 つ目はスタックの最上位が 0 以外だった実行の数です。 2 番目は、 ゼロだった場合の実行数です。 3
番目は実行の合計数です。
.coverage
( – ) gforth-experimental “.coverage”
コードを実行頻度(execution frequencies)とともに表示します。
annotate-cov
( – ) gforth-experimental “annotate-cov”
カバレッジ情報を含むファイルごとに、 実行頻度(execution frequencies)が挿入された .cov
ファイルを作成します。
最初に bw-cover
を使用することをお勧めします(デフォルトの color-cover
を使用すると、
ファイル内にエスケープ シーケンスが含まれます)。
cov%
( – ) gforth-experimental “cov-percent”
coverage.fs の後でロードされ、 少なくとも 1 回実行された基本ブロックの割合を出力します。
.cover-raw
( – ) gforth-experimental “.cover-raw”
生の実行カウントを出力します。
デフォルトでは、 カウント(計数)は(ANSI エスケープ・シーケンスを使用して、)カラーで表示されますが、 bw-cover
を使用すると、 エスケープ・シーケンスを使用せずに括弧で囲まれた形式でカウントを表示できます。
bw-cover
( – ) gforth-1.0 “bw-cover”
実行カウントを(カラー表示ではなく)括弧内に出力します(ソース・コード互換)(訳注: つまり forth のコメントとして出力する。出力をそのまま forth のソース・コードとして利用可能)。
color-cover
( – ) gforth-1.0 “color-cover”
実行カウントをカラーで表示します(デフォルト)。
カバレッジ・カウンター(計数器)をバイナリ形式で保存および再ロードして、 複数のテスト実行にわたるカバレッジ・カウンターを集計できます。
save-cov
( – ) gforth-experimental “save-cov”
カバレッジ・カウンターを保存します。
load-cov
( – ) gforth-experimental “load-cov”
カバレッジ・カウンターをロードします。