0

ANSI C インタープリターを少しテストしたいと思います。私のツールは私の C プログラムを解釈します。マシン コードは生成されません。実行後にヒープ/スタックにアクセスできません! 戻り値/出力をGCCなどに対して検証することを考えていました。

自分に合ったものを探していましたが、無料またはオープンソースのものはほとんど見つかりませんでした.

私のインタープリターをテストする方法について、アイデア/提案を持っている人はいますか? テスト スイートのようなものを推奨できる人はいますか。またはテストケースのパッケージ?

4

1 に答える 1

0

また、C インタープリターも作成し、主に gcc.c (拷問/実行テスト ケース) に依存していました。このテスト スイートは、「歴史的に壊れやすいコード フラグメント」で構成されています。このテストケースの利点は、結果を提供するために実行する必要があり (たとえば、コンパイルするだけではなく)、その結果が期待される結果と一致することです。GCC によってコンパイルされた、実行されたプログラムの結果と比較する必要はありません。基本的には、ディレクトリにファイルを含めて実行するだけで済みます。これは、構成ファイルなどから期待される結果を解析する必要がある他のテスト スイートとは対照的です。テストはGCC リポジトリからダウンロードできます。

欠点の 1 つは、テスト ケースが広範囲に及ぶことが多く、アセンブラー コードを実行するためのasmステートメントやメモリ コンテンツのアラインメント方法に関する属性などの GNU 拡張機能が含まれている可能性があることです。また、次の例のような古い K&C 関数スタイル表記のテスト ケースもいくつか含まれています (スイートからは取得していません)。

int func(a)
int a; 
{
    return a + 1;
}

ただし、ASNI C の多くの「通常の」コーナー ケースもテストしているため、テスト ケースに目を通し、実行できる内容を確認することをお勧めします。

于 2014-02-09T06:22:58.423 に答える