3

練習のために、私はCでstring.cを書き直すことにしました。オンラインで(グーグルまたは他の検索エンジンを介して)標準全体または特にstring.hのテストスイートを見つけることができません。

具体的には、strcat()、strncat()、strchr()、strrchr()、strcmp()、strncmp()、strcpy()、strncpy()、strlen()、およびstrstr()関数かどうかを確認しています。 ISO / IEC 9899:1990(「ISOC90」)に準拠しています。

誰かがこれらの機能をテストするための良い方法をお勧めできますか?

編集:上記のタイトルと段落はstring.hと言っていました-私はstring.cを意味しました

4

2 に答える 2

4

PJ Plaugerは、彼の著書であるThe Standard C Library(ライブラリ全体の実装をカバーしています)で、ライブラリの各部分のテストプログラムを紹介しています。これらは網羅的なものではなく、オンラインの情報源もありませんが、この本は、ライブラリを実装している人にとっては間違いなく興味深いものです。

于 2009-12-30T10:56:30.010 に答える
2

コンパイラとライブラリの検証テストスイートはすぐに利用できます。IIRC、RogueWaveはそのビジネスに携わっていました。しかし、それらはお金がかかり、それらを使用する企業は深いポケットを持っている傾向があります。

GNUの人々もそれらを持っています、これは始めるのに良い場所のように見えます。string.hテストを分離するには、いくつかの調査を行う必要があります。ただし、これらのテストを自分で作成することを躊躇しないでください。これは、関数を再実装するよりも、文字列関数が何をすべきか、何をすべきでないかを学ぶためのより良い方法だと思います。

于 2009-12-30T13:31:19.010 に答える