Implementación de `hacer cheque` o` hacer prueba '
-
30-10-2019 - |
Pregunta
¿Cómo puedo implementar un marco de prueba de regresión simple con Make? (Estoy usando GNU Make, si eso importa).
Mi makefile actual se parece a esto (editado por simplicidad):
OBJS = jscheme.o utility.o model.o read.o eval.o print.o
%.o : %.c jscheme.h
gcc -c -o $@ $<
jscheme : $(OBJS)
gcc -o $@ $(OBJS)
.PHONY : clean
clean :
-rm -f jscheme $(OBJS)
Me gustaría tener un conjunto de pruebas de regresión, p.ej, expr.in
probar una expresión "buena" y unrecognized.in
probar uno "malo", con expr.cmp
& unrecognized.cmp
siendo el resultado esperado para cada uno. Las pruebas manuales se verían así:
$ jscheme < expr.in > expr.out 2>&1
$ jscheme < unrecognized.in > unrecognized.out 2>&1
$ diff -q expr.out expr.cmp # identical
$ diff -q unrecognized.out unrecognized.cmp
Files unrecognized.out and unrecognized.cmp differ
Pensé en agregar un conjunto de reglas a The Makefile que se ve como esto:
TESTS = expr.test unrecognized.test
.PHONY test $(TESTS)
test : $(TESTS)
%.test : jscheme %.in %.cmp
jscheme < [something.in] > [something.out] 2>&1
diff -q [something.out] [something.cmp]
Mis preguntas:
• ¿Qué pongo en los marcadores de posición [algo]?
• ¿Hay alguna forma de reemplazar el mensaje desde diff
con un mensaje que dice: "Prueba expr
ha fallado"?
No hay solución correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow