Nuevo proyecto: Caddeus, un Makefile para TDD en C

Caddeus es un Makefile para GNU Make que sirve como plantilla para comenzar el desarrollo de cualquier proyecto en C. Caddeus está liberado bajo una licencia BSD simplificada. Caddeus está hospedado en Github en la siguiente dirección

https://github.com/alvarezp/caddeus

Esta plantilla soporta automáticamente:

Un modelo de desarrollo dirigido por pruebas (TDD): No es un framework sino la construcción de un módulo y su falla temprana sin reconstruir otros módulos ni reejecutar cada pruebas innecesariamente. La regla es muy simple: si tienes un modulo.c, crea otro llamado modulo.t.c y Make automáticamente compilará y ejecutará modulo.t.c automáticamente después y registrará si la prueba pasó. Cualquier modificación al módulo provocará una ejecución nueva de las pruebas de dicho módulo.

Un archivo llamado aplicacion.tt es considerado un script a ser ejecutado tras la compilación de la aplicación final, útil para prueba de integración.

Por defecto, las CFLAGS son muy estrictas, forzando la estandarización y la portabilidad (o la documentación de la falta de portabilidad) desde un principio: -std=c99 -W -Wall -Werror -Wextra -pendatic-errors. Si tu programa falla con estas banderas, intenta #define _GNU_SOURCE al principio de tu módulo y proponte como reto poder eliminar esa definición. Como resultado, tendrás un código de mayor calidad y mejor portabilidad.

Análisis estático automático, cortesía de CppCheck y Clang. Si están presentes en el sistema, todos tus módulos serán automáticamente revisados por CppCheck y Clang, dándote seguridad de un código fuente de mayor calidad.

Análisis automático de ejecución, cortesía de Valgrind. Si está instalado en el sistema, las pruebas unitarias se ejecutarán a través de Valgrind con revisión completa por fugas de memoria.

Todo lo anterior se desactiva automáticamente ante la presencia de un archivo “RELEASE”, lo que permite liberar código sin forzar a que el resto del mundo ejecute las mismas pruebas.

Se pueden establecer timeouts de manera opcional para dejar corriendo el juego de pruebas y si se cae en un ciclo infinito, el consumo del CPU se detenga después de un tiempo establecido.

Se generan automáticamente dependencias de los archivos .c a sus encabezados .h, de modo que al cambiar cualquiera de los encabezados, también se regeneran los módulos que correspondan.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *