作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 CUnit 测试此代码。我收到此错误消息:
/bin/sh: line 1: 44477 Segmentation fault: 11 ./build/Debug/GNU-MacOSX/tests/TestFiles/f2
哪里出了问题?我看不到它。谁能告诉我为什么我会收到此错误。
提前致谢
哪里出了问题?我看不到它。谁能告诉我为什么我会收到此错误。
提前致谢
#include <stdio.h>
#include <stdlib.h>
#include <CUnit/Basic.h>
#include <CUnit/TestDB.h>
int add(int a, int b) {
return a + b;
}
int init_suite(void) {
return 0;
}
int clean_suite(void) {
return 0;
}
void test1() {
CU_ASSERT(add(2, 2) == 4);
}
void test2() {
CU_ASSERT(add(2, 3) == 5);
}
CU_TestInfo test_array1[] = {
{ "add/test1", test1},
{ "add/test2", test2},
CU_TEST_INFO_NULL,
};
CU_TestInfo test_array2[] = {
{ "add/test3", test1},
{ "add/test4", test2},
CU_TEST_INFO_NULL,
};
CU_SuiteInfo suites[] = {
{ "suit1", init_suite, clean_suite, test_array1},
{ "suit2", init_suite, clean_suite, test_array2},
CU_SUITE_INFO_NULL,
};
int main() {
/* initialize the CUnit test registry */
if (CUE_SUCCESS != CU_initialize_registry())
return CU_get_error();
/* Add a suite to the registry */
if (CUE_SUCCESS != CU_register_suites(suites)) {
CU_cleanup_registry();
return CU_get_error();
}
/* Run all tests using the CUnit Basic interface */
CU_basic_set_mode(CU_BRM_VERBOSE);
CU_basic_run_tests();
CU_basic_show_failures(CU_get_failure_list());
printf("\n");
CU_cleanup_registry();
return CU_get_error();
}
最佳答案
如果您在最近的 cunit 版本(即 2.1
)上遇到此问题,则段错误应该来自代码片段中定义不明确的 CU_SuiteInfo
。
CU_SuiteInfo suites[] = {
{ "suit1", init_suite, clean_suite, test_array1},
{ "suit2", init_suite, clean_suite, test_array2},
CU_SUITE_INFO_NULL,
};
一个recent change在 CU_SuiteInfo
接口(interface)中添加了两个新属性 pSetUpFunc
和 pTearDownFunc
,因此您必须像这样声明您的套件
int setup_suite(void) { return 0; }
int teardown_suite(void) { return 0; }
CU_SuiteInfo suites[] = {
{ "suit1", init_suite, clean_suite, setup_suite, teardown_suite, test_array1},
{ "suit2", init_suite, clean_suite, setup_suite, teardown_suite, test_array2},
CU_SUITE_INFO_NULL,
};
IMO,他们应该在 2.1 次要版本上保持接口(interface)兼容性。但这是9年前的改变。另请注意,由于 CU_SuiteInfo
的界面更改,该文档网站已过时。
关于CUnit CU_register_suites(套件)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51433966/
我正在使用 CUnit 测试此代码。我收到此错误消息: /bin/sh: line 1: 44477 Segmentation fault: 11 ./build/Debug/GNU-MacOSX/t
我是一名优秀的程序员,十分优秀!