Pruebas en el track de C

Aprende a probar tus ejercicios de C en Exercism


Cada ejercicio proporciona los tests unitarios y una receta de compilación de Make. Tú te encargas de la implementación.

Cada archivo de tests está pensado para enlazarse con tu implementación y así generar un ejecutable de consola que ejecuta los tests. Ejecutar el ejecutable de tests imprime un mensaje por cada test que falla y reporta un estado de salida distinto de cero cuando los tests fallan.

Para resolver un ejercicio:

  • Crea la compilación inicial con Make
  • Para cada test unitario:
    • Elimina la línea TEST_IGNORE().
    • Resuelve los errores de compilación para que el test falle.
    • Implementa solo lo suficiente para que el test pase.
    • Refactoriza tu implementación para mejorar la legibilidad, reducir la duplicación, etc.

Compilar y ejecutar los tests

Cada ejercicio trae un archivo makefile junto con un .c con los tests unitarios. No deberías necesitar editar el archivo de Make. El archivo de Make que se proporciona asume que tu implementación existe como un archivo de encabezado (.h) y un archivo fuente (.c) con el nombre del ejercicio.

Por ejemplo, el ejercicio bob espera una implementación en bob.h y bob.c. Para los ejercicios con guiones en el nombre, se asume que los archivos fuente usan guiones bajos, así que word-count espera word_count.h y word_count.c. Puede que decidas que tu implementación es lo bastante simple como para vivir por completo en el encabezado, en cuyo caso puedes omitir el archivo .c.

Crea tus archivos de implementación iniciales antes de ejecutar Make. Si no tienes los archivos bob.h y bob.c cuando ejecutes Make para el ejercicio bob, Make generará un error indicando que no encuentra los archivos. Estos archivos pueden estar vacíos, pero deben existir.

Compila tu código

La forma más sencilla de compilar tu código es usar make en la línea de comandos (CLI). En Linux, la CLI está disponible en bash o similar; en MacOS, usa Terminal. En Windows 10, está disponible Bash del Windows Subsystem for Linux (WSL).

Para hacerlo, suponiendo que el directorio actual es la carpeta del ejercicio:

$ make

Esto compilará tu código y ejecutará los tests.

El makefile también incluye una compilación que revisa algunos errores comunes relacionados con fugas de memoria y accesos fuera de los límites de los arrays. Para ejecutar estas comprobaciones, usa lo siguiente en la línea de comandos:

$ make memcheck

Limpieza

Para limpiar después de una compilación, puedes indicarle a make que elimine toda la salida de la compilación, incluido el ejecutable:

$ make clean

Alternativa de compilación en MacOS

En MacOS también puedes usar Xcode. Para compilar el código, selecciona Build en la barra de herramientas.