2015-05-21 13 views
5

si tenta di eseguire un'analisi cppcheck sopra il mio codice, che ha la seguente struttura dei file:Come escludere i percorsi di prova dall'analisi cppcheck?

/code/module_1/src/a.cpp 
/code/module_1/src/b.cpp 
/code/module_1/test/c.cpp 
/code/module_2/src/d.cpp 
/code/module_2/src/e.cpp 
/code/module_3/test/f.cpp 

mi piacerebbe eseguire un'analisi escludendo tutto il codice di prova. È possibile con un comando come "cppcheck -itest"? Non funziona per me, anche se penso che dovrebbe, secondo the docs:

... nome della directory viene abbinato a tutte le parti del percorso.

Sto usando la versione 1.69. So che potrei menzionare tutte le directory di test separatamente (che funziona, ho controllato), ma il numero di moduli è troppo alto per fare questo per molte analisi ragionevolmente.

È possibile?

+0

Puoi fornire esattamente la riga di comando che stai tentando di utilizzare? –

risposta

0

userei qualcosa di simile:

cppcheck /code/module_1/src /code/module_2/src /code/module_3/src 
+0

Si prega di spiegare perché questo è meglio di ciò che l'autore sta facendo attualmente. Allo stato attuale, questa risposta è uno standard molto basso per SO e probabilmente verrà eliminata dalla comunità. –

+0

Scusa, ero un po 'veloce. Non c'è alcun vantaggio. Tuttavia con il mio approccio se la riga di comando lo consente, è possibile utilizzare la normale espansione della riga di comando: "cppcheck/code/*/src" mentre non è possibile usare "cppcheck -i/code/*/test". –

2

ho installato Cppcheck a fare qualche test e sembra l'implementazione -i è un po 'fuori di testa. Tuttavia, sono riuscito a ottenere quello che vuoi.

Soluzione: uso -itest\ invece di -itest (questo è stato in Windows, forse Linux ha bisogno -itest/)

Razionale: nel mio test, -itest lavorati soltanto se ci fosse una directory .\test\, nel qual caso anche .\a\test\a.cpp è stato escluso. Con -itest\, tuttavia, tale esclusione è avvenuta indipendentemente dalla presenza della directory .\test\.

Questo sembra un bug che gli sviluppatori dovrebbero eliminare, ma, nel frattempo, si può riuscire usando la soluzione precedente.

0

Questa è una risposta tardiva a una vecchia domanda, ma forse questo aiuterà altri ritardatari come me.

Disclaimer: Questa risposta è per Windows.

Sembra che v1.79 abbia risolto il problema dell'OP. La seguente sintassi di riga di comando ha funzionato per me:

cppcheck -itest code 

In questo esempio, "-itest" erbacce qualsiasi occorrenza della directory "test", come originariamente (e correttamente) assunte dal PO. Inoltre, la cartella del codice si trova accanto a cppcheck.exe. Questa sarà la radice della scansione ricorsiva del codice sorgente.

Problemi correlati