Con gcov, è possibile unire al .gcda file?
-
02-10-2019 - |
Domanda
Ho lo stesso file di origine (C e Obj-C) di essere compilati in due obiettivi: l'eseguibile unit test e il prodotto reale (che poi si fa l'integrazione testato). I due obiettivi costruire in luoghi diversi, in modo che i file oggetto, .gcno e .gcda file sono separati. Non tutti i file di origine vengono compilati nel test di unità, in modo da non esisteranno tutti gli oggetti là. Tutti i file di origine vengono compilati in build del prodotto.
C'è un modo per combinare i due set di .gcda file per ottenere la copertura totale per i test unitari e test di integrazione (come vengono eseguiti sul accumulo del prodotto)?
sto usando lcov.
Mac OS X 10.6, GCC 4.0
Grazie!
Soluzione
Dal momento che si sta utilizzando lcov, si dovrebbe essere in grado di convertire i file gcov .gcda in file lcov e unirli con lcov --add-tracefile
.
Da pagina di manuale: Aggiungi contenuto del file di traccia. Specificare diversi tracefiles utilizzando l'opzione -a per combinare i dati di copertura contenute in questi file sommando i conteggi di esecuzione delle combinazioni di test e il nome di corrispondenza.
Altri suggerimenti
Finalmente sono riuscito a risolvere il mio problema per mezzo di lcov.
In pratica quello che ho fatto è il seguente:
- Compila l'applicazione con le bandiere
-fprofile-arcs -ftest-coverage --coverage
- Distribuire la copia della domanda per ciascun nodo.
- Eseguire l'applicazione in ciascun nodo in parallelo. (Questo passaggio genera nella directory dell'applicazione nell'ospite accesso alle informazioni di copertura)
- Let lcov fare il suo lavoro:
-
lcov --directory src/ --capture --output-file coverage_reports/app.info
-
- Genera l'output HTML:
-
genhtml -o coverage_reports/ coverage_reports/app.info
-
Spero che questo possa essere di aiuto a qualcuno.
I fonderlo da lcov parametri multipli -d come di seguito. Esso funziona.
lcov -c -d ./tmp/ -d ./tmp1/ -o ./tmp/coverage.info