Pregunta

¿Es posible utilizar gcov para pruebas de cobertura de aplicaciones multiproceso?

He configurado algunas pruebas triviales de nuestro código base, pero sería bueno tener una idea de la cobertura que estamos logrando.Si gcov no es apropiado, ¿alguien puede recomendar una herramienta alternativa (posible oprofile), idealmente con buena documentación sobre cómo comenzar?

¿Fue útil?

Solución

Ciertamente hemos utilizado gcov para obtener información de cobertura en nuestra aplicación multiproceso.

Desea compilar con gcc 4.3, que puede cubrir código dinámico.

compilas con el -fprofile-arcs -ftest-coverage opciones, y el código generará archivos .gcda que luego gcov puede procesar.

Hacemos una compilación separada de nuestro producto y recopilamos cobertura sobre eso, ejecutando pruebas unitarias y pruebas de regresión.

Finalmente usamos lcov para generar páginas de resultados HTML.

Otros consejos

Gcov funciona bien para aplicaciones multiproceso.La arquitectura de instrumentación está serializada adecuadamente por lo que obtendrá datos de cobertura de buena fidelidad.

Sugeriría usar gcov junto con lcov.Esto le brindará excelentes informes que abarcan desde el proyecto completo hasta los archivos fuente individuales.

lcov también le brinda una versión HTML de su fuente con un bonito código de colores para que pueda evaluar rápidamente sus lapsos de cobertura.

No he usado gcov para trabajos de cobertura de subprocesos múltiples.Sin embargo, en MacOS, la herramienta Shark de Apple maneja múltiples subprocesos.Es principalmente un generador de perfiles, pero también puede generar información de cobertura.

http://developer.apple.com/tools/sharkoptimize.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top