C ++コンパイラのコンプライアンステストはありますか?[閉まっている]


21

特定のC ++コンパイラのコンプライアンスを測定できる、自由に使用可能/アクセス可能なスクリプト、ソースファイルなど、どこかにありますか?

たとえば、ブラウザのAcid3テスト:http ://acid3.acidtests.org/

私が夢見る結果は、グローバルなパーセンテージのメモ(または複数のメモ、各標準に1つ、たとえばc ++ 98、c ++ 11、c ++ 14など)であり、その後「成功」の詳細なテストになるまたはそれらのそれぞれの「失敗」。

背景:ブーストといくつかの課題のあるコンパイラについて、職場で議論しました。私の対話者は、主要なC ++コンパイラでは機能しないため、ブーストが学術プロジェクトであることについて話しました。精神的に困難なコンパイラは考慮すべきではないと答えました。コンパイラの実際の適合性をコードで測定できると、コンパイラの評価と、それらでコンパイルされたクロスプラットフォームコードで回避する必要がある「コーナーケース」の発見の両方に役立ちます。

編集:2013-06-22

答えではありませんが、明らかに、C ++委員会はこの問題に取り組んでいます:

SG10、機能テスト: Clark Nelson(Intel)。特定のC ++製品がまだ機能を実装しているかどうかを確認するための移植可能なコードの方法を標準化するかどうか、およびその方法を調査します。

ソース:http : //isocpp.org/std/the-committee


これがあります:peren.com/pages/products_set.htmが。私はそれを使用したことがなく、C ++コミュニティでのステータスがわからないため、回答を試みません。
ヤニス

1
Boostは主要なC ++コンパイラで動作します。おそらくそれらのコンパイラの古いバージョンではなく、おそらくあなたの会社が依存している比較的曖昧なコンパイラではないかもしれませんが、リリースノートでテスト済みのコンパイラの膨大なリストを見てください。そして、それはBoostの連中が自らテストしたものです!Boostはアカデミックという意味ではなく、コンパイラーを評価してそのステートメントを却下する必要はありません。

4
私はこの質問を笑いながら椅子から落ちそうになりました....それは非常に有効な質問です、ここで答えに興味があります..... 2013年です-確かに、私たちのツールチェーンがTDDを使用するのと同じくらい基本的なものですか? 「......私は何をすべきか、ではないと言う何をすべきか」の場合
mattnz

6
なぜ投票するのですか?これは非常に有効で関連性のある質問だと思います。標準への準拠の証明は、ほとんどの専門家が使用するほとんどのツールに必須です。
マッテンツ

1
これは、C ++委員会の最大の再発/失敗の1つだと思います。私は多くの本当に賢い人々が同じ愚かなことを何度も繰り返し続けていることに驚いています。

回答:


5

特定のC ++コンパイラのコンプライアンスをテストする1つの方法は、(大規模な)テストスイート、つまり言語のすべての側面をテストするC ++ファイルの束を実行することです。

よく知られているテストスイートは、gccおよびllvmテストスイートです。これらは、明らかに適合性を含む、コンパイラのあらゆる種類の側面をテストします。ただし、(私の知る限り)適合に関して特別なレポートは生成されないため、特に適合を特に評価することは困難です。

この領域には次のものがあります。

  • gccコンパイラのテストに使用されるGCC C拷問テスト
  • LLVMテストスイート:clangコンパイラーとllvmバックエンド向けのダイレクトテストと、コンパイラーをテストするための本格的なアプリケーションのセット。
  • C ++ 11サポートをテストするためのLLVM libcxxテスト(libcxxリポジトリの一部)。

C / C ++適合性をテストするための広範なテストスイートがあります。悲しいかな、これらはすべて10k〜40kのオーダーの商用ライセンスです。

  • SuperTest:このリストの中で最も広範なもの。C99、C ++、EmbeddedC、DSP-C適合性に向けたおよそ300万件のテスト。
  • プラムホール。CおよびC ++(C ++ライブラリを含む)。ANSI C準拠、ランダムプログラムジェネレーター、テストテンプレート、およびテストプロセス全体を制御するスクリプトインタープリターが含まれています。
  • 多年生。CおよびC ++。
  • ヌルストーン。Cのみ。

4

私が知っている最も近いものは、特定の標準バージョンのコンテキストです。同様に、同様のコンテンツを含むブログ投稿があります。ただし、このような問題を規定する事実上のまたは法的な機関、テスト、またはテストスイートについては知りません。isocpp.orgでさえ、現在、適合リソースがないようです。あなたが得ることができる最も近いものは、おそらく各ベンダーの特定の適合チャートであり、それはせいぜい一貫性がありません。

例:ClangGCCMSVCIntel

実際、競合するコンパイラはごくわずかです(少なくともx86 / x64スペースでは-人気の低いプラットフォームにも当てはまると思います)が、参照があればとても良いと思います。速度を上げます。


0

次のURLは公式の標準Webサイトhttp://www.open-std.org/jtc1/sc22/wg21/ですが、私は標準テストを知りません。

また、Boostにある多くのものがC ++標準に組み込まれています。ユタ州立大学のケネス・サンドバーグ博士によると。

また、その信頼性をまだ確認できません。信頼できるかどうかを確認しようとしていますが、https: //groups.google.com/forum/?fromgroups#!forum / comp.stdのGoogleグループ.c ++は、公式のテストが存在しないと主張しています。


スンドバーグ博士?ノー博士やグッテンバーグ博士のように?
-ott--

4
@ottいいえ、博士号のように コンピュータサイエンスで。
トラビスペセット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.