2

私はPythonの初心者であり、参照によって呼び出されているC関数をテストする必要があります。

これが私のCファイルです:myfile.c

#include<stdio.h>

int my_function(int *x)
{
int A;
printf("enter value of A");
scanf("%d",&A);
*x = 10 * A; // this sets the value to the address x is referencing to
 return 0; 
}

これで、Pythonスクリプトはmy_function()を呼び出し、引数を渡して、結果を確認および検証できるようにする必要があります。

何かのようなもの :

result = self.loaded_class.my_function(addressOf(some_variable))

self.assertEqual(some_variable,10)

これは可能ですか?どうすればこれを達成できますか。そして、インタラクティブなPythonを使用せずに、自動テスト用にPythonでスクリプトを作成しています。

4

2 に答える 2

2

ファイルを共有ライブラリまたはdllとしてコンパイルする場合(その方法はわかりません)、次のようなctypeを使用できます(この例ではdllであると想定しています)。

import ctypes as ct

mylib = ct.cdll.myfile
c_int = ct.c_int(0)
mylib.my_function(ct.byref(c_int))
print c_int.value
于 2013-03-19T14:04:12.553 に答える
1

C関数用のPythonインターフェースを作成できます。簡単な例は、Pythondocにあります。ただし、C関数をテストするだけの場合は、 GoogleTestなどのC/C++テストフレームワークを使用した方がよいでしょう。

于 2013-03-19T13:12:03.647 に答える