Reduce un archivo, por ejemplo, de texto, JSON, o código fuente, eliminando partes innecesarias. El objetivo es que el archivo reducido siga causando determinado comportamiento, como un error, un fallo en un programa o un resultado relevante para la prueba usando reglas o aproximaciones [heurísticas] que son las que deciden qué partes del archivo se pueden eliminar sin perder el "interés" del archivo. Un archivo es "interesante" si causa un comportamiento específico, como un fallo en un programa, un error de compilación, o reproduce un error que estamos investigando. Supongamos que se tiene un archivo de código fuente muy grande [program.c] y se descubre que al compilarlo, el compilador muestra un error inesperado. Usar delta ayudará a reducir ese archivo al mínimo tamaño que sigue provocando el mismo error. Un ejemplo:
$ delta test.c -- gcc test.c
delta probará diferentes versiones reducidas de test.c eliminando líneas o bloques de código. Cada vez que elimina algo, ejecuta gcc test.c para verificar si el archivo reducido sigue causando el error. El proceso termina cuando encuentra la versión más pequeña de test.c que provoca el mismo error.
Algunas opciones útiles:
--keep-tmp: No elimina los archivos temporales generados durante la minimización. Útil para analizar el proceso.
--timeout=N: Termina la prueba si toma más de N segundos. Esto evita que un comando lento bloquee la minimización.
--cpus=N: Usa N núcleos de CPU para acelerar el proceso.