2015-01-10 12 views
5

W moim kodzie jest kilka wywołań assert, aby upewnić się, że moje funkcje działają poprawnie i wykonać pewne niezmienne testy dla struktur danych.Czy można zignorować `assert`ions na grafach referencyjnych generowanych przez doxygen?

Czasami używam funkcji w argumencie assert, a funkcje te są następnie w grafiku wywołania Doxygens tej funkcji. W przypadku niektórych większych niezmiennych testów jest to naprawdę nielogiczne wykres ...

Jak można uniknąć tego, że list_isSorted w poniższym ujęciu wystąpi w grafiku?

int list_isElem (List l, Element e) { 
    assert(list_isSorted(l)); 
    { 
    if (list_isEmpty(l)) { return 0; } 
    switch (compare(e, list_getValue(l))) { 
    case -1: return 0; 
    case 0: return 1; 
    case 1: return list_isElem (list_getTail(l), e); 
    default: exit(ERR_UNKNOWN); 
    } 
    } 
} 

Próbowałem już ustawić PREDEFINED = NDEBUG w Doxyfile, ale to nie działa.

Odpowiedz

1

po prostu pomiń twierdzenie?

zobaczyć http://www.stack.nl/~dimitri/doxygen/manual/faq.html

„Nowy i najprostszym sposobem jest dodać jeden komentarz bloku z poleceniem dyr \ w bloku startowym i jeden komentarz z \ endcond”

zautomatyzować to z makro:

#define DAssert(x) /** \cond */ assert(x) /** \endcond */ 
+1

Wolałbym, gdyby ta praca bez tak dużej ilości pracy ręcznej. Miałem nadzieję, że Doxygen poradzi sobie z tym automatycznie, a przynajmniej ktoś może wskazać mi już istniejący filtr. – NobbZ

+1

Zdefiniuj makro, które otacza wywołanie 'assert()' za pomocą poleceń '\ cond' i' \ endcond'. –

+0

@NobbZ dodane makro, które powinno działać –

Powiązane problemy