2014-04-24 9 views
7

Mi chiedo se ci sia la possibilità di dire a lcov di ignorare alcune linee in un file sorgente, es. non segnalarli come non visitati. Sto cercando una soluzione che può essere messo in codice stesso, come:Come dire a lcov di ignorare le righe nei file sorgente

int some_method(char some_var, char some_other_var) 
{ 
    if(some_var == 'A') 
    { 
     if(some_other_var == 'B') 
     { 
       /* do some real stuff here */ 
     } 
     else 
     { 
       LCOV_DO_NOT_REPORT_NEXT_LINE // **<-- this?? ** 
       NOT_IMPLEMENTED("A*") 
     } 
    } 
    else 
    { 
     NOT_IMPLEMENTED("*") 
    } 

E il background necessario:

Un grosso pezzo di codice come quello sopra viene testato in una serie di unità test, ma dal momento che questo codice è ancora in fase di sviluppo ci sono un sacco di macro NOT_IMPLEMENTED("A*") che appena messo un messaggio sullo schermo con il numero di riga/nome file e uscire dall'applicazione. Non ci sono test per i rami non implementati, ovviamente saranno scritti quando la funzionalità è implementata.

Tuttavia, lcov segnala queste linee NOT_IMPLEMENTED e appaiono molto brutte nel rapporto di copertura (ovvero: fanno un alto rapporto di linee rosse).

È quello che chiedo, o dovremmo semplicemente convivere con questo?

+0

Qual è il motivo per avere i rami vuoti, se non avete intenzione di fare qualcosa con loro ancora? – PomfCaster

+0

@PomfCaster tutti i rami vuoti hanno una macro 'NOT_IMPLEMENTED' che indica che in quel ramo ci sarà una funzionalità – fritzone

+0

La mia risposta risolve il problema? – PomfCaster

risposta

10

È possibile utilizzare quanto segue come commenti nella fonte.

Da http://ltp.sourceforge.net/coverage/lcov/geninfo.1.php

  • LCOV_EXCL_LINE verranno esclusi
    • Linee che contengono questo marcatore.
  • LCOV_EXCL_START
    • segna l'inizio di una sezione esclusi. La linea corrente fa parte di questa sezione.
  • LCOV_EXCL_STOP
    • segna la fine di una sezione esclusa. La riga corrente non fa parte di questa sezione.