Implementazione di `Make Check` o` Make Test`
-
30-10-2019 - |
Domanda
Come posso implementare un semplice framework di test di regressione con Make? (Sto usando GNU Make, se questo è importante.)
Il mio Makefile attuale assomiglia a questo (modificato per semplicità):
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)
Vorrei fare una serie di test di regressione, per esempio, expr.in
Testare un'espressione "buona" e unrecognized.in
testarne uno "cattivo", con expr.cmp
& unrecognized.cmp
essere l'output previsto per ciascuno. I test manuali sarebbero così:
$ 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
Ho pensato di aggiungere una serie di regole al makefile che sembra qualcosa del genere:
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]
Le mie domande:
• Cosa ho messo nei segnaposto [qualcosa]?
• Esiste un modo per sostituire il messaggio da diff
con un messaggio che dice: "Test expr
fallito "?
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow