Làm cách nào để triển khai khung kiểm tra hồi quy đơn giản với Make? (Tôi đang sử dụng GNU Make, nếu có vấn đề.)Thực hiện `kiểm tra` hoặc 'thực hiện kiểm tra'
makefile hiện tại của tôi trông giống như sau (thay đổi nội dung vì đơn giản):
OBJS = jscheme.o utility.o model.o read.o eval.o print.o
%.o : %.c jscheme.h
gcc -c -o [email protected] $<
jscheme : $(OBJS)
gcc -o [email protected] $(OBJS)
.PHONY : clean
clean :
-rm -f jscheme $(OBJS)
Tôi muốn có một bộ kiểm tra hồi quy, ví dụ, expr.in
thử nghiệm một biểu thức "tốt" & unrecognized.in
thử nghiệm một "xấu", với expr.cmp
& unrecognized.cmp
là đầu ra được mong đợi cho mỗi. kiểm tra thủ công sẽ trông như thế này:
$ 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
Tôi nghĩ để thêm một bộ quy tắc để các makefile tìm kiếm một cái gì đó như thế này:
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]
Câu hỏi của tôi:
• để tôi đặt gì trong [ cái gì đó] giữ chỗ?
• Có cách nào để thay thế tin nhắn từ diff
bằng thông báo có nội dung “Kiểm tra expr
không thành công” không?
Whence all tempfiles? Điều gì là sai với – reinierpost
@reinierpost: Nếu bạn có cách tốt hơn để thực hiện những so sánh này, bằng mọi cách, hãy đăng câu trả lời bao gồm chúng — đó là _chính xác_ loại trợ giúp mà tôi yêu cầu. –
Xin lỗi, tôi nghĩ tôi đã hủy câu hỏi đó. Bạn cần tempfiles. – reinierpost