使用POSIX线程可测试的C应用程序



我必须编写看起来像这样做的代码(当然要复杂得多):

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?

我只知道一种在C:具有函数指针中模拟函数的方法,以模拟功能,只能通过该指针将其调用。对于测试,您将调整指针以指向模拟功能。但是我不知道您是否真的想沿着那条路线走。

相关内容

最新更新