問題タブ [check-framework]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - Cでの単体テストのためにCTestでチェックライブラリを使用する方法
ユニットテストにチェックライブラリを使用したいプロジェクトがあります。
私の現在のプロジェクトはCMakeを使用しており、次の構造を持っています:
モジュールcore-test
の単体テストがあります。core
では、モジュールなどscrypt-test
のテストを行います。scrypt
check
CTest での使用は理にかなっていますか?
check
はいの場合: CMake/CTest プロジェクトに使用する単体テストを接続するにはどうすればよいですか? 有効化された実行可能ファイルからの結果を CTest が解釈するには、追加の構成が必要check
ですか?
c - チェック付きのユニットテストを作成するにはどうすればよいですか?
Cコードをテストし、テストフレームワークとしてチェックを使用することにしました。しかし、コードをコンパイルする方法がわかりませんか?チュートリアルでは、すでに非常に巨大なmakefileがありますが、それらをビルドする方法や、必要なgccフラグについては説明していません。
簡単なテストを実行するにはどうすればよいですか?
c - チェックテストCフレームワーク用のライブラリの構築
Cアプリケーションのテストにチェックフレームワークを使い始めました。理解を深めるために、チェックパッケージの例を調べました。正常に動作していますが、自動作成ツールは必要ありません。自分のMakefileでコンパイルしたいと思います(チェックを正しく理解し、最終的なアプリケーションをOSのパッケージとして使用する必要があるため)。自動生成されたMakefileをそこで使用できるかもしれませんが、今のところ、それは私が学ばなければならない次の1つの新しいことであり、単体テストの準備に時間を制限しています。(もちろん、Makfileを生成したり、configureを使用したりするためのツールを研究して理解したいと思います。)
Makefileを使用してアプリケーションを構築する際に、チェック機能のためにオブジェクトをリンクしていないという問題があります。
サンプルアプリケーションでは、objを含むgccであることがわかりました。check_money-check_money.o
gccによって作成されたファイル:
そしてここに私の問題があります:それは依存関係を使用しますcheck_money-check_money.Tpo
。./configure
このファイルは、私が使用していないコマンドによって生成されていました。
チェック用に独自の.o
ファイルを作成して正常にビルドするにはどうすればよいですか?アプリケーションごとにこのファイルを作成する必要がありますか?共有ライブラリのどこかで1つになることはできませんか?
(私の質問が「ばかげている」場合は申し訳ありませんが、Linuxでアプリケーションを構築した経験はまだ少ないです)
c - 未定義の参照エラーをチェックするEclipse Cユニットテスト
私は C に非常に慣れていないので、次の問題があります。非常に小さなプログラム filecopy.c を作成しました。Check を使用して単体テストを行いたいのですが、単体テストを作成してビルドすると、 Eclipse がライブラリ libcheck を見つけられないかのように、未定義の参照エラーが大量に発生します (プロジェクト - プロパティ - C++ ビルド - 設定 - ライブラリに「チェック」を追加して指定しました)。
私のファイルからの関連コードは次のとおりです。
filecopy.c
filecopy.h
filecopyTest.c
テスト コードは、チェック チュートリアルに従っているべきものとまったく同じであり、filecopy プログラムは単独で動作します。このセットアップを使用して Eclipse が生成した Makefile は次のとおりです。
Eclipse に filecopy.c ファイルをビルドしてから filecopyTest.c ファイルをビルドするように指示すると、filecopyTest.c 内で呼び出されるすべての関数に対して「[function_name] への未定義の参照」が返されます (fileCopy を含むが意味をなさないため)。その関数のヘッダーが含まれており、ライブラリをインポートする必要さえありません)。実際、ライブラリ ファイルは /usr/lib に存在し、適切にインストールされています (gcc を手動で実行すると、正常にコンパイルされ、実行されているように見えます (ただし、いくつかのエラーが発生する可能性があります。判断は困難です))。
Eclipse 内で C を使用した単体テストの経験がある場合は、助けてください。私は Eclipse が大好きで、新しい C プロジェクトに使用したいと思っていますが、テスト ファースト プログラミングも大好きで、テストなしで C のプロジェクトを開発するつもりはありません。私はCUnitでこれとまったく同じ問題を抱えていて、おそらくCheckの方がうまくいくと思いましたが、完全なC初心者として理解できないのは明らかに間違っています。私はインターネットを精査し、同様の状況に関する「解決済み」の記事を複数見つけましたが、それらのソリューションを実装しても Eclipse では役に立ちませんでした。Eclipse が make ファイルで何をするのか、あるいはリンクとは何か、どのように失敗するのかを完全には理解していませんが、単体テストを使用して Eclipse で C をプログラムしたいだけで、この問題を解決しようと何時間も試みた後、乗り越えられない仕事。追加情報が必要な場合はお知らせください。CDT 8.0.2 を使用する Eclipse Indigo を参照用に使用しています。
誰かが私に与えることができるかもしれないどんな助けにも前もって感謝します. 単体テストとその有用性について学び、次に C とそのパフォーマンスについて学び、お気に入りの IDE 内でこの 2 つを組み合わせることができないことを学ぶのは、とても憂鬱です。
c - Autotools なしで C 単体テスト フレームワーク Check を使用しますか?
公式の Check チュートリアルに従おうとしていますが、それには Autotools の実用的な知識が必要ですが、それは私にはありません。簡単なテストをいくつか書きたいと思っていたのですが、このチュートリアルには圧倒されてしまいました。これは、Autoconf、Automake、および一部の Check マクロの多くの魔法に依存しています。Check が実際にどのように機能するかについては説明していないので、手動でテストを作成できます。
Autotools なしで Check を使用するにはどうすればよいですか?
c - Automake、GNU make、check、および(無視された)パターンルール
(Pythonスクリプトを介して)作成foo.hdb
および作成することになっている次のMakefile.amがあります。foo.cdb
foo.h
ただし、make foo.hdb
andmake foo.cdb
は機能しますが(Pythonコードを呼び出してfoo.hdb
とfoo.cdb
ファイルをから生成しますfoo.h
)、make clean check
(または2つを別々に)機能しません(欠落しているfoo.hdb
-そのようなファイルはありません)-から生成するためにパターンルールは呼び出されませfoo.hdb
んfoo.h
。
つまり、check_foo_SOURCESにリストされているファイルに対してパターンルールが呼び出されていません。
どうすればこれを機能させることができますか?残りのautotoolsインフラストラクチャは正常に機能しています。Makefileを見ると、autotoolsがチェックソースを拡張する方法に問題があるのではないかと思います。
これはすべてLinuxでGnumakeを使用しています。これがMakefileです。
[MadScientistの助けを反映するために少し更新されました]。
後で更新
次のMakefile(autotoolsではなくmakeだけ)は正常に機能するため、この問題はautotoolsとchecksupportに関連しているようです。
(ファイル拡張子がOKのままになるように、xxx.hdbからcorm_xxx.hなどに切り替えたことに注意してください)。
詳細
CHECKマクロに関連しているように見えるので、これはconfigure.acです。
解決
さて、以下のさまざまなことを要約すると、2つの重要な問題がありました(ファイル拡張子を修正したら、「プレーンな」makefileとfcellerの回答を参照してください)。どちらも機能させるのに十分でした。
(処理)ヘッダーファイルは複雑です。自動依存関係のため、プログラムで生成されたヘッダーファイルは問題を解決します。解決策は、 BUILT_SOURCESを使用することです
ただし、.cファイル(の処理)は複雑ではありません。したがって、corm_foo.cをcheck_foo.cの前に置くと、そのファイルの生成がトリガーされます。これもcorm_foo.hを生成するため、すべてが機能します(check_foo.cにcorm_foo.hを含めることができるようになったため)。
また、fcellerには、整頓されたmakefileに関するいくつかの優れた一般的なポイントがあり、「プレーンな」makefileが機能する理由を説明しています。
automake - check と autotools を使用した問題のコンパイル
フレームワークを使用した C 単体テストがいくつかありcheck
ます。
私Makefile.am
のように見えます:
ファイル構成は次のとおりです(一部のファイルは省略されています):
次に、実行するmake check
とスローされます:
なにが問題ですか?
c - How compile a llvm code file using functions from C?
Is there a way for compile a file in llvm (*.ll) that uses functions in C?
I created a test using check C and I compile it as:
This way, I am using the libraries from check, but I need produce the llvm code that uses the library from check. When I try this command:
and try execute the code:
I receive this answer:
I think that a solution is do something as:
But it is not supported.
I am thinking that a similar answer is available at:LLVM JIT-compiled program cannot find external functions
c - Cでチェックフレームワークを実行しているprintf印刷を2回停止しますか?
- おそらく、c および c スレッドで一般的に印刷がどのように行われるかについての深い説明があれば、問題は解決するでしょう
- どの時点でも使用されるループと scanf はありません
- 私のコードはチェック フレームワークを使用しているため、分岐が発生していると思います。
- ほとんどの場合、それはバッファに関係しているため、fflush(stdout) を使用しています。フレームワーク内の何かが原因である場合は、フレームワークを知っている人が何が起こるかを説明してくれます。
- フレームワークのページをチェック check.sourceforge.net
- これが何らかの形で役立つ場合はGitリンクhttps://github.com/batousik/Practical-C2
- ビルド/テスト ログへのリンク、438 行目で印刷が開始https://travis-ci.org/batousik/Practical-C2/builds/53513707
コードサンプル
PrintTree 関数
}
ツリー -> 印刷機能
サンプル出力
それはたくさんのコードです。要点は後で!!! 1行あるはずですが、2行印刷されています
^^ この行は 2 回出力されます
コメント: 「マクロ」とは何ですか? これはAPIからのものです
c - C セグメンテーション違反、サイズ 4 の無効な読み取り
- ここに良い答えがあります.C ++プログラムのSegfault; 理解不能なvalgrind の出力ですが、コードで何が起こっているのか説明されていません
エラーの概要:
設定:
機能部分:
取り壊す:
173行目は次のとおりです。