2016-07-04 4 views
0

Мой код выглядит следующим образом:Куните утверждение Утверждение `((пустота *) 0) = f_pCurSuite» не удалось

#include <CUnit/CUnit.h> 


int maxi(int i1, int i2) 
{ 
    return (i1 > i2) ? i1 : i2; 
} 

void test_maxi(void) 
{ 
    CU_ASSERT(maxi(0,2) == 2); 
} 

int main() { 
    test_maxi(); 
    return 0; 
} 

Я составил его с помощью gcc test.c -o test -lcunit на Ubuntu.

Я получаю эту ошибку при попытке запустить его:

тест: TestRun.c: 159: CU_assertImplementation: Утверждение `((пустота *) 0) = f_pCurSuite» не удалось. Прерывание (сбрасывание ядра)

Что это значит? Я ничего не нашел об этом в Интернете.

+0

Вы проверили [пример кода] (http://cunit.sourceforge.net/example.html)? Кажется, вам не хватает довольно много настроек. –

ответ

1

CUnit работает над наборами тестов, которые необходимо создать, прежде чем вы сможете запустить приложение.

Очень простой способ сделать тест на работу, как следующее:

#include <CUnit/CUnit.h> 
#include <CUnit/Basic.h> 

int maxi(int i1, int i2) 
{ 
    return (i1 > i2) ? i1 : i2; 
} 

void test_maxi(void) 
{ 
    CU_ASSERT(maxi(0,2) == 2); 
} 

int main() { 
    CU_initialize_registry(); 
    CU_pSuite suite = CU_add_suite("maxi_test", 0, 0); 

    CU_add_test(suite, "maxi_fun", test_maxi); 

    CU_basic_set_mode(CU_BRM_VERBOSE); 
    CU_basic_run_tests(); 
    CU_cleanup_registry(); 

    return 0; 
} 

без всех необходимых проверок, но Joachim Pileborg предложил в комментариях, это безопаснее следовать примеру код, предоставленный.