es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

gcov no detecta las pruebas kunit correctas.

Comencé a trabajar en una serie de pruebas unitarias para diferentes módulos del kernel que estoy escribiendo actualmente. Con ese objetivo, estoy utilizando el excelente marco de trabajo KUnit.

Siguiendo la prueba simple descrita en la página web de KUnit, pude crear una primera serie de pruebas que se compilan, se ejecutan y muestran los resultados como se esperaba.

Para mí, el siguiente paso fue utilizar la cobertura de código en esos resultados para generar un informe de calidad de la cobertura de las estrategias de prueba en los diferentes módulos.

El problema viene cuando abro los resultados de la cobertura de código. Indica que ninguna línea ha sido analizada por mis pruebas en el módulo que estoy escribiendo. Sé por hecho que esto no es así porque generé una prueba fallida en la función de prueba usando:

“KUNIT_FAIL(test,”Esta prueba nunca pasa.”);”

Y kunit.py informa de que la prueba falló. Incluso el código fuente de la prueba no se informó como encubierto…

¿Alguien tiene una idea de cómo solucionarlo?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en pruebas unitarias y el kernel de Linux, los siguientes pasos pueden ayudar:

    1. Asegúrese de que la herramienta gcov esté instalada en su sistema. Gcov es una utilidad que proporciona análisis de cobertura durante la ejecución de pruebas. En la mayoría de las distribuciones de Linux, esto se puede instalar ejecutando:
    sudo apt-get install gcov
    
    1. Asegúrese de que el módulo de prueba se construya con análisis de cobertura habilitado. CFLAGS debería incluir -fprofile-arcs -ftest-coverage, lo que le indica al compilador que instrumente el código para rastrear la cobertura:
    make CFLAGS=-fprofile-arcs -ftest-coverage
    
    1. Ejecute las pruebas y revise los archivos .gcda en el directorio de compilación. Estos archivos contienen los datos de cobertura recopilados durante la ejecución de pruebas. Asegúrese de que se estén generando estos archivos.
    2. Use la utilidad gcov para generar un informe de cobertura. Por ejemplo, para generar un informe para el archivo de módulo de prueba test_module.c, ejecute:

    gcov test_module.c
    

    Esto generará un archivo llamado test_module.c.gcov, que contiene un informe de la cobertura de código.

    Si los pasos anteriores no funcionan, puede indicar un problema con el propio framework KUnit. En este caso, recomendaría comunicarse con la comunidad o el repositorio de código fuente de KUnit para obtener ayuda.

Comments are closed.