bd0c13fff23e4fbbe44c420227284f300edcece9
[YACASL2.git] / test / Makefile.PARENT.mk
1 include LIST.mk
2 LOGFILE = test.log
3 ifdef UNITNAME
4   define create
5     @mkdir $(UNITNAME)
6     @echo 'include ../CMD.mk    # YACASL2DIR, CASL2' >$(UNITNAME)/Makefile; \
7      echo 'UNITNAME = $(UNITNAME)' >>$(UNITNAME)/Makefile; \
8      echo 'ASDIR = $$(YACASL2DIR)/as' >>$(UNITNAME)/Makefile; \
9      echo 'ASFILE = $$(ASDIR)/$(UNITNAME)' >>$(UNITNAME)/Makefile; \
10      echo '# IN = <' >>$(UNITNAME)/Makefile; \
11      echo 'CMD = $$(CASL2) $$(CASL2FLAG) $$(ASFILE) $$(IN)' >>$(UNITNAME)/Makefile; \
12      echo 'include ../Test.mk' >>$(UNITNAME)/Makefile
13     @echo $(UNITNAME) \\ >>List.mk
14   endef
15 else
16   define create
17     @echo "no test created. set UNITNAME"
18   endef
19 endif
20
21 .PHONY: all check cleanall clean prepare create report
22 all: clean check report
23 clean:
24         @for target in $(TESTS); do \
25          $(MAKE) clean -C $$target; \
26      done
27         @rm -f $(LOGFILE)
28 check:
29         @for target in $(TESTS); do \
30          $(MAKE) check -C $$target; \
31      done
32 report: $(LOGFILE)
33         @success=`grep "Success" $(LOGFILE) | wc -l`; \
34      all=`cat $(LOGFILE) | wc -l`; \
35      echo "$$success / $$all tests passed. Details in `pwd`/$(LOGFILE)"; \
36      if test $$success -eq $$all; then \
37        echo "All tests are succeded."; \
38      else \
39        grep "Failure" $(LOGFILE); \
40      fi
41 prepare: cleanall
42         @for target in $(TESTS) ; do \
43          $(MAKE) prepare -C $$target ;\
44      done
45 cleanall:
46         @for target in $(TESTS); do \
47          $(MAKE) cleanall -C $$target; \
48      done
49         @rm -f $(LOGFILE)
50 create:
51         $(create)
52 $(LOGFILE):
53         @for target in $(TESTS); do \
54          cat <$$target >>$(LOGFILE); \
55      done