そのようなことをするように見えるコードを書かなければなりません (もちろんもっと複雑です):
int stop;
int isStopped;
void workerFunction(){
while(!stop){
//...
}
isStopeed = 1;
}
startThread(){
int newThreadPid = pthread_create(..., NULL, workerFunction, NULL);
}
stopThread(){
stop = 1;
}
私の質問は次のとおりです。そのようなコードをテスト可能にする手法はありますか? 次のようなテストを書くとは思わない:
startThread();
stopThread();
sleep(1);
ASSERT(isStopped);
最高のアイデアです。システム関数を呼び出さずに stopThread() 関数をテストする方法は? pthread_create をモックする方法はありますか?