078ca89fa780dd0502ffe13c2074bc7309e197f0
[YACASL2.git] / test / unit / Makefile
1 include List.mk
2 LOGFILE = test.log
3 ifdef UNITNAME
4   define create
5     @mkdir $(UNITNAME)
6     @echo "UNITNAME = $(UNITNAME)" >$(UNITNAME)/Makefile; \
7      echo "UCLASS = $(UCLASS)" >>$(UNITNAME)/Makefile; \
8      echo "include ../Test.mk" >>$(UNITNAME)/Makefile
9     @echo "$(UNITNAME) \\" >>List.mk;
10     @cp Template.c $(UNITNAME)/$(UNITNAME).c;
11   endef
12 else
13   define create
14     @echo "no test created. set UNITNAME, UCLASS={ AS | EXEC | COMMON }"
15   endef
16 endif
17
18 .PHONY: all logclean testclean check prepare
19 all: logclean check clean report
20 clean: logclean testclean
21 logclean:
22         @rm -f $(LOGFILE)
23 testclean:
24         @for target in $(TESTS); do \
25          $(MAKE) testclean -C $$target; \
26      done
27 check: $(LOGFILE)
28 $(LOGFILE):
29         @for target in $(TESTS); do \
30          $(MAKE) -C $$target; \
31      done
32 prepare:
33         @for target in $(TESTS) ; do \
34              $(MAKE) prepare -C $$target ;\
35      done
36 create:
37         $(create)
38 report: $(LOGFILE)
39         @success=`grep "Success" $(LOGFILE) | wc -l`; \
40          all=`cat $(LOGFILE) | wc -l`; \
41          echo "$$success / $$all tests passed."; \
42          if test $$success -eq $$all; then \
43            echo "All Tests are passed."; \
44          else \
45            grep "Failure" $(LOGFILE); \
46          fi