如何在c中创建一个单元测试用例,用于缓冲区溢出,不会导致内存错误,例如段错误?
即给出一个简单的缓冲区溢出,例如
int function () {
int exampleArray[10];
exampleArray[10] = 5;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如何为此代码创建单元测试?显然有一个错误,我们正在编写一个数组的末尾.但是,您可以在没有任何错误证据的情况下运行此类函数.
注意:我需要能够为用户在运行时提供数组索引以及上述简化案例时创建测试用例.
在像Java这样的托管语言中,代码将抛出一个可以捕获的异常(ArrayIndexOutOfBoundsException).因此,创建一个测试用例很简单(例外的try-catch块).
如何在c中创建这样的测试?C的任何单元测试框架都可以处理这种情况吗?
背景信息:我正在尝试自动生成测试用例.我知道错误在哪里,并希望能够创建一个单元测试来对这些错误进行失败.
但是,我不知道如何创建一个测试用例,该测试用例因缓冲区溢出错误而无法使应用程序崩溃.