X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=test%2Funit%2FMakefile;h=e22d03cb67da01d901a77a76a2513bdfdde7e5ab;hb=7d5e10034319b163596c9f5930e333fc87043271;hp=078ca89fa780dd0502ffe13c2074bc7309e197f0;hpb=fb54b1c9d2fbc3d4a62c6b4d38ff68e9d3b25c26;p=YACASL2.git diff --git a/test/unit/Makefile b/test/unit/Makefile index 078ca89..e22d03c 100644 --- a/test/unit/Makefile +++ b/test/unit/Makefile @@ -1,46 +1,52 @@ -include List.mk -LOGFILE = test.log -ifdef UNITNAME - define create - @mkdir $(UNITNAME) - @echo "UNITNAME = $(UNITNAME)" >$(UNITNAME)/Makefile; \ - echo "UCLASS = $(UCLASS)" >>$(UNITNAME)/Makefile; \ - echo "include ../Test.mk" >>$(UNITNAME)/Makefile - @echo "$(UNITNAME) \\" >>List.mk; - @cp Template.c $(UNITNAME)/$(UNITNAME).c; - endef -else - define create - @echo "no test created. set UNITNAME, UCLASS={ AS | EXEC | COMMON }" - endef -endif - -.PHONY: all logclean testclean check prepare -all: logclean check clean report -clean: logclean testclean -logclean: - @rm -f $(LOGFILE) -testclean: - @for target in $(TESTS); do \ - $(MAKE) testclean -C $$target; \ - done -check: $(LOGFILE) -$(LOGFILE): - @for target in $(TESTS); do \ - $(MAKE) -C $$target; \ - done -prepare: - @for target in $(TESTS) ; do \ - $(MAKE) prepare -C $$target ;\ - done +# autotest.mk > template > Group.mk +# テストグループのMakefile +# +# オペレーター +# make : すべてのテストを実施し、ログファイルを作成 +# make check : ↓ +# make create : TESTNAMEで指定されたテストを新規に作成 +# make set : すべてのテストの、想定結果を出力 +# make checkeach: すべてのテストを実施 +# make report : ログファイルから、テストの結果をレポート +# make clean : すべてのテストで、"make" で生成されたファイルをクリア +# make cleanall: すべてのテストで、"make" と "make set" で生成されたファイルをクリア + +SHELL = /bin/sh + +include Define.mk +include Define_group.mk + +.PHONY: check checkall time create clean cleantime + +check checkall: clean $(GROUP_REPORT_FILE) + @$(CAT) $(GROUP_REPORT_FILE) + +time: cleantime $(GROUP_TIME_FILE) + @$(CAT) $(GROUP_TIME_FILE) + create: - $(create) -report: $(LOGFILE) - @success=`grep "Success" $(LOGFILE) | wc -l`; \ - all=`cat $(LOGFILE) | wc -l`; \ - echo "$$success / $$all tests passed."; \ - if test $$success -eq $$all; then \ - echo "All Tests are passed."; \ - else \ - grep "Failure" $(LOGFILE); \ - fi + @$(call create_dir,$(TEST)) + @$(call create_makefile,$(TEST)/$(MAKEFILE),$(TEST_MAKEFILES)) + +clean: + @$(call make_tests,$(TESTS),$@) + @$(RM) $(GROUP_RES_FILES) + +cleantime: + @$(call make_tests,$(TESTS),$@) + @$(RM) $(GROUP_TIME_FILE) + +$(GROUP_REPORT_FILE): $(GROUP_LOG_FILE) + @$(call group_report,$(GROUP),$^,$@) + +$(GROUP_LOG_FILE): $(TEST_LOG_FILES) + @$(call group_log,$^,$@) + +$(TEST_LOG_FILES): + @$(MAKE) $(MAKECMDGOALS) -sC $(dir $@) NODISP=1 + +$(GROUP_TIME_FILE): $(TEST_TIME_FILES) + @$(call group_log,$^,$@) + +$(TEST_TIME_FILES): + @$(MAKE) time -sC $(dir $@)