問題タブ [cmocka]
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 - サブルーチンを再定義するために、単体テスト用のラップ ディレクティブとのリンクを使用できますか?
Cmocka を使用して、C で記述された共有オブジェクトの単体テスト スイートを作成していますが、問題が発生しています。ソースコードを共有できないため、何が問題なのかを示すために、最小限の「動作しない」例を作成しました。
私のプログラムは、foo.c、foo.h、bar.c、bar.h、main.c の 5 つのファイルで構成されています。
- bar.* ファイルは bar() 関数を定義します。この関数は単純に 2 を掛けた引数を返します。
- foo.* ファイルは、bar.h で定義された bar() 関数を使用する foo() 関数を宣言します。
- main.c には、単純な cmocka テストと__wrap_bar()が含まれています。
関数で、引数に 3 を掛けたものを返します。
libfootest.so オブジェクト (foo+bar) を作成してプログラムをコンパイルし、このオブジェクトを main.o にリンクして、-Wl,--wrap=bar フラグをコンパイラに渡します。この構成では、 libfootestがテスト対象のモジュールであり、main がテスター プログラムです。__wrap__bar が呼び出される (テストに失敗する) ことを期待していますが、標準の bar() が呼び出されます (テストに合格)。どうすればこの問題を解決できますか? 以下に、私が使用しているすべてのコードを示します。
bar.c:
bar.h:
foo.h:
foo.c:
main.c:
メイクファイル:
c - cmocka の印刷形式を変更するには?
こんにちは、cmocka フレームワークの printf 形式を変更する方法を知っている人はいますか?
たとえば、assert_int_equalが失敗した場合、値は 16 進数で表示されます
のように10進数に変更したい