2009-09-13 9 views

答えて

10

通常、PerlテストはTAPを使用します。いくつかのC libraries for TAPがあります。このPerl testing presentationをご覧ください。

+0

最後の2つのリンクは機能しませんもうこれ以上、私は2006年に[Testing C with Libtap](http://www.onlamp.com/pub/a/onlamp/2006/01/19/libtap.html?CMP=OTC-6YE827253101&ATT= Testing + C + + Libtap)がまだオンラインです。 –

2

Perl Testing: A Developer's Notebookは、クロマチックとIan Langworthでご覧ください。

私はコピーを購入する意味がありますが、まだ私はperlmongersミーティングでそれをスキミングしました。しかし、それはあなたが探しているものにスポットがあるようです。


UPDATE:

フム、これは私が質問お読みください示し - PerlでのPerlプログラムをテストしていない、PerlでCプログラムをテストします。

本書はまだ役に立つかもしれません(テストスクリプトを書いてTest::Moreと友人を使用しているはずです)が、このアプローチをとるとCを制御するPerl関数のセットを書く必要があります。基本的には

sub run_my_c_program { 
    my @[email protected]_; 

    #Set up test environment according to @args 

    system "my-c-program"; 

    # Turns restults into a $rv data structure 

    return $rv; 
} 

、その後、通常のPerlのテストと同じように$rvをチェックしてください。

is_deeply(run_my_c_program(...), 
      { .. what I think it returns ..}, 
      ".. description of what I'm testing .."); 
+3

特に第9章が重要です。テストプログラムと共有ライブラリに関するセクションがあります。これは非常に良い本です。 – daotoad

2

あなたが外部プログラムをテストするためにPerlを使用する方法を学習を開始したい場合は、Perlを使用することを学んで始めるにはPerlのビットをテストする。 Test::Moreモジュールは始めるのに適しています。それを理解したら、他のすべてのTest::*モジュールをCPANに見て、それらのモジュールの1つがあなたがしなければならないことがあるかどうかを見てください。

特定の質問がある場合は、それについて質問してください。この質問は、誰もが役に立つ答えを提供するにはあまりにも幅広いです。

1

私はチュートリアルはありませんが、以前はC++コンパイラをテストしたテストチームにいました。私たちが使ったテストハーネスは、perlで書かれていて、何年も私たちのために働いていました。 Perlは、プログラムをビルドするためのツールを呼び出すために簡単に使うことができ、後でテストログに出力するために出力をキャプチャすることができるので理想的でした(例えば、 "backticks"を使用してコンパイラを実行します。 ; )、ビルドが成功した場合は、テストプログラムを実行し、出力をキャプチャしてテストログに挿入します。私たちがPerlを使用してから得た

その他の利点:/検出に失敗域用

  • 、Perlの正規表現のサポートは参考になりました。
  • 私たちのプログラム(コンパイラ)は、多くの異なるハードウェアアーキテクチャに耐えられるように移植されました。 Perlソースが利用可能であったため、Cでコンパイラが利用可能になるとすぐに新しいアーキテクチャ上でperlを実行することができました(これは通常、アセンブラ後の新しい環境で実装される最初の言語です)。
  • 多くのドキュメント、書籍、ヘルプがあります。

-Ron

0

私はCプログラムをテストするために、Perlのテストを使用していますTesting C with Libtapについての記事::ハーネスを書きました。プロジェクトの例を次に示します:https://github.com/stig/libggtl/tree/master/t - 難解なビルドシステムがおそらく存在しないため、おそらくそれがどのように動作するのかを理解できるはずです:-)

関連する問題