From ab84b0bbed2ed96d2ad0baa35b89f347859cd3b4 Mon Sep 17 00:00:00 2001 From: j8takagi <j8takagi@nifty.com> Date: Mon, 29 Nov 2010 01:57:55 +0900 Subject: [PATCH] =?utf8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=81=94=E3=81=A8?= =?utf8?q?=E3=81=AB=E8=A9=B3=E7=B4=B0=E3=83=AD=E3=82=B0deteil.log=E3=82=92?= =?utf8?q?=E4=BD=9C=E6=88=90=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E4=BB=95?= =?utf8?q?=E6=A7=98=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- template/Define.mk | 110 +++++++++++++++++++++++++-------------- template/Define_group.mk | 95 +++++++++++++++++++++++++++++++++ template/Define_test.mk | 80 ++++++++++++++++++++++++++++ template/Group.mk | 102 ++---------------------------------- template/Makefile | 18 ++++--- template/Test.mk | 73 ++++---------------------- 6 files changed, 271 insertions(+), 207 deletions(-) create mode 100644 template/Define_group.mk create mode 100644 template/Define_test.mk diff --git a/template/Define.mk b/template/Define.mk index 44c12c9..18813ff 100644 --- a/template/Define.mk +++ b/template/Define.mk @@ -4,50 +4,15 @@ ifndef DEFINE_INCLUDED DEFINE_INCLUDED = 1 -###################################################################### -# ãã¹ãã°ã«ã¼ãã®ãã£ã¬ã¯ããªã¼ -###################################################################### - -# ãã¹ãã°ã«ã¼ãã¨ãã¹ãã®ä¸¡æ¹ã§ä½¿ã夿°ãå®ç¾©ãããã¡ã¤ã« -DEF_FILE := Define.mk - -# ãã¹ãã®Makefileã«ã¤ã³ã¯ã«ã¼ããããã¡ã¤ã« -TEST_MAKEFILE := Test.mk +# ç¾å¨ã®æ¥æ +DATE = $(shell date +"%F %T") -###################################################################### -# ãã¹ãã®ãã£ã¬ã¯ããªã¼ -###################################################################### +# ç¾å¨ã®ãã£ã¬ã¯ããªã¼ +CURRDIR = $(shell pwd) # Makefile MAKEFILE := Makefile -# ãã¹ãã³ãã³ããã¡ã¤ã« -CMD_FILE := cmd - -# ãã¹ã説æãã¡ã¤ã« -DESC_FILE := desc.txt - -# ãã¹ãæ³å®çµæãã¡ã¤ã« -TEST0_FILE := 0.txt - -# ãã¹ãçµæãã¡ã¤ã« -TEST1_FILE := 1.txt - -# ãã¹ãã®ãæ³å®çµæã¨çµæã®å·®åãã¡ã¤ã« -DIFF_FILE := diff.txt - -# ãã¹ãã¨ã©ã¼ãã¡ã¤ã« -ERR_FILE := err.txt - -# ãã¹ããã°ãã¡ã¤ã« -LOG_FILE := test.log - -# å®è¡æéãã¡ã¤ã« -TIME_FILE := time.log - -# ç¾å¨ã®æ¥æ -DATE = $(shell date +"%F %T") - ###################################################################### # ã³ãã³ã ###################################################################### @@ -70,8 +35,17 @@ DEV_NULL ?= /dev/null CHMOD ?= chmod +GREP ?= grep + +LINECOUNT ?= wc -l + +FIND ?= find + +TR ?= tr + +EXPR ?= expr ###################################################################### -# ãã¯ã +# ãã¹ãã°ã«ã¼ãã¨ãã¹ãã§ã®å ±éãã¯ã ###################################################################### # chk_var_null: 弿°ãNULLã®å ´åãã¨ã©ã¼ @@ -92,4 +66,60 @@ define chk_file_notext $(if $(wildcard $1),,$(error $1 not exists in $(CURRDIR))) endef +###################################################################### +# ãã¹ãã°ã«ã¼ãã®ãã£ã¬ã¯ããªã¼ +###################################################################### + +# ãã¹ãã°ã«ã¼ãã¨ãã¹ãã®å¤æ°ãå®ç¾©ããMakefile +DEF_FILE := Define.mk + +# ãã¹ãã°ã«ã¼ãã®å¤æ°ãå®ç¾©ããMakefile +DEF_GROUP_FILE := Define_group.mk + +# ãã¹ãã®å¤æ°ãå®ç¾©ããMakefile +DEF_TEST_FILE := Define_test.mk + +# ãã¹ãã®ã¿ã¼ã²ãããå®ç¾©ããMakefile +TEST_MAKEFILE := Test.mk + +# ãã¹ã¦ã®Makefile群 +MAKEFILES := $(DEF_FILE) $(DEF_GROUP_FILE) $(DEF_TEST_FILE) $(TEST_MAKEFILE) + +# ãã¹ããã¨ã®Makefileã§ã¤ã³ã¯ã«ã¼ãããMakefile群 +TEST_MAKEFILES := $(DEF_FILE) $(DEF_TEST_FILE) $(TEST_MAKEFILE) + +###################################################################### +# ãã¹ãã®ãã£ã¬ã¯ããªã¼ +###################################################################### + +# ãã¹ãã³ãã³ããã¡ã¤ã« +CMD_FILE := cmd + +# ãã¹ã説æãã¡ã¤ã« +DESC_FILE := desc.txt + +# ãã¹ãæ³å®çµæãã¡ã¤ã« +TEST0_FILE := 0.txt + +# ãã¹ãçµæãã¡ã¤ã« +TEST1_FILE := 1.txt + +# ãã¹ãã®ãæ³å®çµæã¨çµæã®å·®åãã¡ã¤ã« +DIFF_FILE := diff.txt + +# ãã¹ãã¨ã©ã¼ãã¡ã¤ã« +ERR_FILE := err.txt + +# ãã¹ããã°ãã¡ã¤ã« +LOG_FILE := test.log + +# å®è¡æéãã¡ã¤ã« +TIME_FILE := time.log + +# ãã¹ã詳細ã¬ãã¼ããã¡ã¤ã« +DETAIL_FILE := detail.log + +# ãã¹ãã®çµæã¨ãã¦ä½æããããã¡ã¤ã«ç¾¤ +TEST_RES_FILES := $(TEST1_FILE) $(DIFF_FILE) $(ERR_FILE) $(LOG_FILE) $(DETAIL_FILE) $(TIME_FILE) + endif diff --git a/template/Define_group.mk b/template/Define_group.mk new file mode 100644 index 0000000..f3cda2c --- /dev/null +++ b/template/Define_group.mk @@ -0,0 +1,95 @@ +###################################################################### +# ãã¹ãã°ã«ã¼ãã®ãã£ã¬ã¯ããªã¼ +# ã»ãã«ãDefine.mkã§ãä¸é¨å®ç¾© +###################################################################### + +# ã°ã«ã¼ããã£ã¬ã¯ããªã¼ +GROUP_DIR := $(CURRDIR) + +# ã°ã«ã¼ãåããã£ã¬ã¯ããªåããåå¾ +GROUP := $(notdir $(GROUP_DIR)) + +# ãã¹ãåãã«ã¬ã³ããã£ã¬ã¯ããªã¼å ã®ãååã大æåã¾ãã¯.以å¤ã§å§ã¾ããã£ã¬ã¯ããªã¼ +TESTS = $(notdir $(shell $(FIND) -maxdepth 1 -name "[^A-Z.]*" -type d)) + +# ãã¹ãã°ã«ã¼ããã°ãã¡ã¤ã« +GROUP_LOG_FILE := $(shell $(ECHO) $(GROUP) | $(TR) '[a-z]' '[A-Z]').log + +# ãã¹ãã°ã«ã¼ãã¬ãã¼ããã¡ã¤ã« +GROUP_REPORT_FILE := Report.log + +# ãã¹ãã°ã«ã¼ãå®è¡æéãã¡ã¤ã« +GROUP_TIME_FILE := $(shell echo $(GROUP) | $(TR) '[a-z]' '[A-Z]')_time.log + +# ã°ã«ã¼ãã§ããã¹ãçµæã¨ãã¦ä½æããããã¡ã¤ã«ç¾¤ +GROUP_RES_FILES := $(GROUP_LOG_FILE) $(GROUP_REPORT_FILE) $(GROUP_TIME_FILE) + +# ãã¹ããã¨ã®ãã°ãã¡ã¤ã« +TEST_LOG_FILES := $(foreach test,$(TESTS),$(test)/$(LOG_FILE)) + +###################################################################### +# ãã¹ãã°ã«ã¼ãã®ãã¯ã +###################################################################### + +# æå®ãããã£ã¬ã¯ããªã¼ã使 +# ç¨ä¾: $(call create_dir,name) +define create_dir + $(call chk_var_null,$1) + $(call chk_file_ext,$1) + $(MKDIR) $1 +endef + +# ãªã¹ãã§æå®ããã親ãã£ã¬ã¯ããªã¼ã«ããMakefileãã¤ã³ã¯ã«ã¼ãããMakefileã使 +# ç¨ä¾: $(call create_makefile,file,list_include_file) +define create_makefile + $(RM) $1 + $(foreach infile,$2,$(ECHO) "include ../$(infile)" >>$1; ) +endef + +# ãã¹ããã¨ã®ãã¡ã¤ã«ãã°ã«ã¼ããã¡ã¤ã«ã«åºå +# 弿°ã¯ããã¹ãã®ãªã¹ããã°ã«ã¼ããã¡ã¤ã«ããã¹ããã¡ã¤ã« +# ç¨ä¾: $(call group_log,files_test_log,file_group_log) +define group_log + $(foreach target,$1,$(call group_log_each,$(target),$2)) +endef + +# ãã¹ãã®ãã°ãã¡ã¤ã«ãã°ã«ã¼ããã°ãã¡ã¤ã«ã«åºåã弿°ã¯ããã¹ããã°ã«ã¼ããã°ãã¡ã¤ã« +# ç¨ä¾: $(call group_log_each,file_test_log,file_group_log) +define group_log_each + if test -s $1; then $(CAT) $1 >>$2; else $(ECHO) $(dir $1)": no log" >>$2; fi + $(ECHO) >>$2; + +endef + +# æåãããã¹ãã®æ°ããã¹ãã°ã«ã¼ããã°ãã¡ã¤ã«ããåå¾ +SUCCESS_TEST = $(shell $(GREP) "^[^A-Z.].*: Test Success" $(GROUP_LOG_FILE) | $(LINECOUNT)) + +# 失æãããã¹ãã®æ°ããã¹ãã°ã«ã¼ããã°ãã¡ã¤ã«ããåå¾ +FAIL_TEST = $(shell $(GREP) "^[^A-Z.].*: Test Failure" $(GROUP_LOG_FILE) | $(LINECOUNT)) + +# ãã¹ã¦ã®ãã¹ãã®æ° +ALL_TEST = $(shell $(EXPR) $(SUCCESS_TEST) + $(FAIL_TEST)) + +# ãã¹ããã¨ã®å®è¡æéãã¡ã¤ã« +TEST_TIME_FILES := $(foreach test,$(TESTS),$(test)/$(TIME_FILE)) + +# ãã¹ãã®çµæããã°ã«ã¼ããã°ãã¡ã¤ã«ãå ã«ã¬ãã¼ãã +# 弿°ã¯ãã°ã«ã¼ãåãã°ã«ã¼ããã°ãã¡ã¤ã«ãã°ã«ã¼ãã¬ãã¼ããã¡ã¤ã« +# ç¨ä¾: $(call group_report,name,file_log,file_report) +define group_report + $(ECHO) "$1: $(SUCCESS_TEST) / $(ALL_TEST) tests passed. Detail in $(GROUP_DIR)/$2" >$3; + if test $(FAIL_TEST) -eq 0; then $(ECHO) "$1: All tests are succeded." >>$3; fi +endef + +# ãªã¹ãã§æå®ãããã£ã¬ã¯ããªã¼ã§makeãå®è¡ +# ç¨ä¾: $(call make_tests,list_dir,target) +define make_tests + $(foreach dir,$1,$(call make_test_each,$(dir),$2)) +endef + +# æå®ãããã£ã¬ã¯ããªã¼ã§makeãå®è¡ +# ç¨ä¾: $(call make_test_each,tests,target) +define make_test_each + $(MAKE) $2 -sC $1; + +endef diff --git a/template/Define_test.mk b/template/Define_test.mk new file mode 100644 index 0000000..78394cb --- /dev/null +++ b/template/Define_test.mk @@ -0,0 +1,80 @@ +###################################################################### +# ãã¯ã +###################################################################### + +# 弿°ã®ãã¡ã¤ã«ããã§ãã¯ããå 容ããªãå ´åã¯åé¤ +# ç¨ä¾: $(call rm_null,file) +define rm_null + if test ! -s $1; then $(RM) $1; fi +endef + +# 説æãã¡ã¤ã«ã®å 容ãã弿°ã®ãã¡ã¤ã«ã«åºå +# ç¨ä¾: $(call desc_log,file_out) +define desc_log + if test -s $(DESC_FILE); then $(CAT) $(DESC_FILE) >>$1; fi +endef + +# ãã¹ãå®è¡ã®çµéæéãããã¡ã¤ã«ã«åºåãã¦è¡¨ç¤º +# 弿°ã¯ããã¹ãåãã³ãã³ããã¡ã¤ã«ãåºåãã¡ã¤ã« +# ç¨ä¾: $(call time_cmd,name,file_cmd,file_out) +define time_cmd + $(call chk_file_notext,$2) + $(CHMOD) u+x $2 + $(TIME) -f"$1: %E" -o $3 ./$2 >$(DEV_NULL) 2>&1 +endef + +# ãã¹ãå®è¡ã³ãã³ãã弿°ã¯ãã³ãã³ããã¡ã¤ã«ãåºåãã¡ã¤ã«ãã¨ã©ã¼ãã¡ã¤ã« +# ã³ãã³ããã¡ã¤ã«ãå®è¡ããæ¨æºåºåãåºåãã¡ã¤ã«ã«ä¿åã +# ã¨ã©ã¼çºçæã¯ãã¨ã©ã¼åºåãåºåãã¡ã¤ã«ã¨ã¨ã©ã¼ãã¡ã¤ã«ã«ä¿åã +# ç¨ä¾: $(call exec_cmd,file_cmd,file_out,file_err) +define exec_cmd + $(call chk_file_notext,$1) + $(CHMOD) u+x $1 + ./$1 >>$2 2>$3 + if test -s $3; then $(CAT) $3 >>$2; fi + $(call rm_null,$3) +endef + +# 2ã¤ã®ãã¡ã¤ã«ãæ¯è¼ããå·®åãã¡ã¤ã«ã使 +# 弿°ã¯ã2ãã¡ã¤ã«ã®ãªã¹ããå·®åãã¡ã¤ã« +# ç¨ä¾: $(call diff_files,files,file_out) +define diff_files + $(DIFF) $1 >$2 2>&1 + $(call rm_null,$2) +endef + +# å·®åãã¡ã¤ã«ã®å 容ããã°ãã¡ã¤ã«ã«åºå +# 弿°ã¯ããã¹ãåãå·®åãã¡ã¤ã«ããã°ãã¡ã¤ã« +# ç¨ä¾: $(call test_log,name,file_diff,file_log) +define test_log + $(call desc_log,$3) + if test ! -s $2; then RES=Success; else RES=Failure; fi; $(ECHO) "$1: Test $$RES $(DATE)" >>$3 + $(ECHO) "Detail in $(CURRDIR)/$(DETAIL_FILE)" >>$3 +endef + +# NODISPãè¨å®ããã¦ããªãæã¯ããã°ãã¡ã¤ã«ã表示 +# 弿°ã¯ããã°ãã¡ã¤ã« +# ç¨ä¾: $(call disp_test_log,file_log) +define disp_test_log + $(if $(NODISP),,$(CAT) $1) +endef + +# ãã¡ã¤ã«ç¾¤ããããã¡ã¤ã«åã¨ãã¡ã¤ã«ã®å 容ãåºå +# 弿°ã¯ã対象ãã¡ã¤ã«ç¾¤ãåºåãã¡ã¤ã« +# ç¨ä¾: $(call report_files,list_file_target,file_out) +define report_files + $(call chk_file_ext,$2) + $(foreach tfile,$1,$(call report_file,$(tfile),$2)) +endef + +# ãã¡ã¤ã«åã¨ãã¡ã¤ã«ã®å 容ãåºå +# 弿°ã¯ã対象ãã¡ã¤ã«ãåºåãã¡ã¤ã« +# ç¨ä¾: $(call report_file,file_target,file_out) +define report_file + $(call chk_var_null,$1) + if test -s $1; then $(ECHO) "== $1 ==" >>$2; $(call echo_hr,$2); cat $1 >>$2; $(call echo_hr,$2); $(ECHO) >>$2; fi +endef + +define echo_hr + $(ECHO) "----------------------------------------------------------------------" >>$1 +endef diff --git a/template/Group.mk b/template/Group.mk index 2214574..e22d03c 100644 --- a/template/Group.mk +++ b/template/Group.mk @@ -13,102 +13,8 @@ SHELL = /bin/sh -###################################################################### -# ãã¹ãã°ã«ã¼ãã®å®ç¾© -###################################################################### - include Define.mk - -# ã°ã«ã¼ããã£ã¬ã¯ããªã¼ -GROUP_DIR := $(shell pwd) - -# ã°ã«ã¼ãåããã£ã¬ã¯ããªåããåå¾ -GROUP := $(notdir $(GROUP_DIR)) - -# ãã¹ãåãã«ã¬ã³ããã£ã¬ã¯ããªã¼å ã®ãååã大æåã¾ãã¯.以å¤ã§å§ã¾ããã£ã¬ã¯ããªã¼ -TESTS = $(notdir $(shell find -maxdepth 1 -name "[^A-Z.]*" -type d)) - -# ãã¹ãã°ã«ã¼ããã°ãã¡ã¤ã« -GROUP_LOG_FILE := $(shell echo $(GROUP) | tr '[a-z]' '[A-Z]').log - -# ãã¹ãã°ã«ã¼ãã¬ãã¼ããã¡ã¤ã« -GROUP_REPORT_FILE := Report.log - -# ãã¹ãã°ã«ã¼ãå®è¡æéãã¡ã¤ã« -GROUP_TIME_FILE := $(shell echo $(GROUP) | tr '[a-z]' '[A-Z]')_time.log - -# ã°ã«ã¼ãã§ããã¹ãæã«ä½æããããã¡ã¤ã«ç¾¤ -GROUP_TEMP_FILES := $(GROUP_LOG_FILE) $(GROUP_REPORT_FILE) $(GROUP_TIME_FILE) - -# ãã¹ããã¨ã®ãã°ãã¡ã¤ã« -TEST_LOG_FILES := $(foreach test,$(TESTS),$(test)/$(LOG_FILE)) - -# æå®ãããã£ã¬ã¯ããªã¼ã使 -# ç¨ä¾: $(call create_dir,name) -define create_dir - $(call chk_var_null,$1) - $(call chk_file_ext,$1) - $(MKDIR) $1 -endef - -# ãã¹ããã¨ã®Makefileã使 -# ç¨ä¾: $(call create_makefile,file) -define create_makefile - $(RM) $1 - $(foreach mkfile,$(DEF_FILE) $(TEST_MAKEFILE),$(ECHO) "include ../$(mkfile)" >>$1; ) -endef - -# ãã¹ããã¨ã®ãã¡ã¤ã«ãã°ã«ã¼ããã¡ã¤ã«ã«åºå -# 弿°ã¯ããã¹ãã®ãªã¹ããã°ã«ã¼ããã¡ã¤ã«ããã¹ããã¡ã¤ã« -# ç¨ä¾: $(call group_log,files_test_log,file_group_log) -define group_log - $(foreach target,$1,$(call group_log_each,$(target),$2)) -endef - -# ãã¹ãã®ãã°ãã¡ã¤ã«ãã°ã«ã¼ããã°ãã¡ã¤ã«ã«åºåã弿°ã¯ããã¹ããã°ã«ã¼ããã°ãã¡ã¤ã« -# ç¨ä¾: $(call group_log_each,file_test_log,file_group_log) -define group_log_each - if test -s $1; then $(CAT) $1 >>$2; else $(ECHO) $(dir $1)": no log" >>$2; fi - echo >>$2; - -endef - -# æåãããã¹ãã®æ°ããã¹ãã°ã«ã¼ããã°ãã¡ã¤ã«ããåå¾ -SUCCESS_TEST = $(shell grep "^[^A-Z.].*: Test Success" $(GROUP_LOG_FILE) | wc -l) - -# 失æãããã¹ãã®æ°ããã¹ãã°ã«ã¼ããã°ãã¡ã¤ã«ããåå¾ -FAIL_TEST = $(shell grep "^[^A-Z.].*: Test Failure" $(GROUP_LOG_FILE) | wc -l) - -# ãã¹ã¦ã®ãã¹ãã®æ° -ALL_TEST = $(shell expr $(SUCCESS_TEST) + $(FAIL_TEST)) - -# ãã¹ããã¨ã®å®è¡æéãã¡ã¤ã« -TEST_TIME_FILES := $(foreach test,$(TESTS),$(test)/$(TIME_FILE)) - -# ãã¹ãã®çµæããã°ã«ã¼ããã°ãã¡ã¤ã«ãå ã«ã¬ãã¼ãã -# 弿°ã¯ãã°ã«ã¼ããã°ãã¡ã¤ã« -# ç¨ä¾: $(call group_report,name,file_log,file_report) -define group_report - $(ECHO) "$1: $(SUCCESS_TEST) / $(ALL_TEST) tests passed. Details in $(GROUP_DIR)/$2" >$3; - if test $(FAIL_TEST) -eq 0; then $(ECHO) "$1: All tests are succeded." >>$3; fi -endef - -# ãªã¹ãã§æå®ãããã£ã¬ã¯ããªã¼ã§makeãå®è¡ -# ç¨ä¾: $(call make_tests,list_dir,target) -define make_tests - $(foreach dir,$1,$(call make_test_each,$(dir),$2)) -endef - -# æå®ãããã£ã¬ã¯ããªã¼ã§Makeãå®è¡ -# ç¨ä¾: $(call make_test_each,tests,target) -define make_test_each - $(MAKE) $2 -sC $1; - -endef - -###################################################################### -# ã¿ã¼ã²ãã -###################################################################### +include Define_group.mk .PHONY: check checkall time create clean cleantime @@ -120,11 +26,11 @@ time: cleantime $(GROUP_TIME_FILE) create: @$(call create_dir,$(TEST)) - @$(call create_makefile,$(TEST)/$(MAKEFILE)) + @$(call create_makefile,$(TEST)/$(MAKEFILE),$(TEST_MAKEFILES)) clean: @$(call make_tests,$(TESTS),$@) - @$(RM) $(GROUP_TEMP_FILES) + @$(RM) $(GROUP_RES_FILES) cleantime: @$(call make_tests,$(TESTS),$@) @@ -137,7 +43,7 @@ $(GROUP_LOG_FILE): $(TEST_LOG_FILES) @$(call group_log,$^,$@) $(TEST_LOG_FILES): - @$(MAKE) $(MAKECMDGOALS) -sC $(dir $@) + @$(MAKE) $(MAKECMDGOALS) -sC $(dir $@) NODISP=1 $(GROUP_TIME_FILE): $(TEST_TIME_FILES) @$(call group_log,$^,$@) diff --git a/template/Makefile b/template/Makefile index 0385c8f..2160a36 100644 --- a/template/Makefile +++ b/template/Makefile @@ -2,8 +2,10 @@ # ãã¹ãã°ã«ã¼ã使ã®Makefile # # ãªãã¬ã¼ã¿ã¼ -# make : ãã¹ãã°ã«ã¼ããã£ã¬ã¯ããªã¼ã使 -# make creategroup: â +# make : ãã¹ãã°ã«ã¼ããã£ã¬ã¯ããªã¼ã使ããMakefile群ãã³ãã¼ +# make creategroup : â +# make creategroupdir: ãã¹ãã°ã«ã¼ããã£ã¬ã¯ããªã¼ã使 +# make copymakefile : Makefile群ãã³ãã¼ # 夿°ããã¯ãã®å®ç¾© include Define.mk @@ -11,11 +13,15 @@ include Define.mk # ãã¹ãã°ã«ã¼ãã®Makefileã¨ãã¦ã³ãã¼ããããã¡ã¤ã« GROUP_MAKEFILE := Group.mk -# ãã¹ãã°ã«ã¼ããã£ã¬ã¯ããªã¼ã使 -creategroup: +.PHONY: creategroup creategroupdir copymakefiles + +creategroup: creategroupdir copymakefiles + +creategroupdir: @$(call err_var_null,GROUPDIR) @$(call err_file_ext,GROUPDIR) @$(MKDIR) $(GROUPDIR) + +copymakefiles: @$(CP) $(GROUP_MAKEFILE) $(GROUPDIR)/Makefile - @$(CP) $(TEST_MAKEFILE) $(GROUPDIR)/ - @$(CP) $(DEF_FILE) $(GROUPDIR)/ + @$(CP) $(MAKEFILES) $(GROUPDIR)/ diff --git a/template/Test.mk b/template/Test.mk index 600e777..edfa278 100644 --- a/template/Test.mk +++ b/template/Test.mk @@ -1,7 +1,7 @@ # autotest.mk > test_template > Test.mk # èªåãã¹ãç¨ã®Makefile # -# è¦: Define.mk +# è¦: Define.mk Define_test.mk # # ãªãã¬ã¼ã¿ã¼ # make : CMDã®æ¨æºåºåãTEST1_FILEã«ä¿åãããã¨ãTEST0_FILEã¨ã®å·®åãæ¯è¼ããçµæãLOG_FILEã«åºå @@ -15,72 +15,17 @@ SHELL = /bin/sh -###################################################################### -# ãã¯ã -###################################################################### - -# 弿°ã®ãã¡ã¤ã«ããã§ãã¯ããå 容ããªãå ´åã¯åé¤ -# ç¨ä¾: $(call rm_null,file) -define rm_null - if test ! -s $1; then $(RM) $1; fi -endef - -# 説æãã¡ã¤ã«ã®å 容ãã弿°ã®ãã¡ã¤ã«ã«åºåã -# ç¨ä¾: $(call desc_log,file_out) -define desc_log - if test -s $(DESC_FILE); then $(CAT) $(DESC_FILE) >>$1; fi -endef - -# ãã¹ãå®è¡ã®çµéæéãããã¡ã¤ã«ã«åºåãã¦è¡¨ç¤ºã -# 弿°ã¯ããã¹ãåãã³ãã³ããã¡ã¤ã«ãåºåãã¡ã¤ã« -# ç¨ä¾: $(call time_cmd,name,file_cmd,file_out) -define time_cmd - $(call chk_file_notext,$2) - $(CHMOD) u+x $2 - $(TIME) -f"$1: %E" -o $3 ./$2 >$(DEV_NULL) 2>&1 -endef - -# ãã¹ãå®è¡ã³ãã³ãã弿°ã¯ãã³ãã³ããã¡ã¤ã«ãåºåãã¡ã¤ã«ãã¨ã©ã¼ãã¡ã¤ã« -# ãã¡ã¤ã«ã®å 容ã¨ãCMD_FILEå®è¡ã®æ¨æºåºåããåºåãã¡ã¤ã«ã«ä¿åã -# ã¨ã©ã¼çºçæã¯ãã¨ã©ã¼åºåãåºåãã¡ã¤ã«ã¨ã¨ã©ã¼ãã¡ã¤ã«ã«ä¿åã -# ç¨ä¾: $(call exec_cmd,file_cmd,file_out,file_err) -define exec_cmd - $(call chk_file_notext,$1) - $(CAT) $1 >$2 - $(CHMOD) u+x $1 - ./$1 >>$2 2>$3 - if test -s $3; then $(CAT) $3 >>$2; fi - $(call rm_null,$3) -endef - -# 2ã¤ã®ãã¡ã¤ã«ãæ¯è¼ããå·®åãã¡ã¤ã«ã使ã -# 弿°ã¯ã2ãã¡ã¤ã«ã®ãªã¹ããå·®åãã¡ã¤ã« -# ç¨ä¾: $(call diff_files,files,file_out) -define diff_files - $(DIFF) $1 >$2 2>&1 - $(call rm_null,$2) -endef - -# å·®åãã¡ã¤ã«ã®å 容ããã°ãã¡ã¤ã«ã«åºåã -# 弿°ã¯ããã¹ãåãå·®åãã¡ã¤ã«ããã°ãã¡ã¤ã« -# ç¨ä¾: $(call test_log,name,file_diff,file_log) -define test_log - if test ! -s $2; then RES=Success; else RES=Failure; fi; $(ECHO) "$1: Test $$RES $(DATE)" >>$3 -endef - # ãã¹ãåãã«ã¬ã³ããã£ã¬ã¯ããªã¼åããåå¾ -TEST = $(notdir $(shell pwd)) - -###################################################################### -# ã¿ã¼ã²ãã -###################################################################### +TEST = $(notdir $(CURRDIR)) .PHONY: check set reset time cleantime clean cleanall -check: clean $(LOG_FILE) +check: clean $(DETAIL_FILE) + @$(call disp_test_log,$(LOG_FILE)) checkall: check $(TIME_FILE) @$(CAT) $(TIME_FILE) >>$(LOG_FILE) + @$(call disp_test_log,$(LOG_FILE)) set: $(TEST0_FILE) @$(CAT) $^ @@ -94,7 +39,7 @@ cleantime: @$(RM) $(TIME_FILE) clean: - @$(RM) $(TEST1_FILE) $(DIFF_FILE) $(LOG_FILE) $(ERR_FILE) $(TIME_FILE) + @$(RM) $(TEST_RES_FILES) cleanall: clean @$(RM) $(TEST0_FILE) @@ -107,12 +52,14 @@ $(TEST0_FILE) $(TEST1_FILE): $(CMD_FILE) @-$(call exec_cmd,$^,$@,$(ERR_FILE)) $(DIFF_FILE): $(TEST0_FILE) $(TEST1_FILE) + @$(call chk_file_notext,$(TEST0_FILE)) @-$(call diff_files,$^,$@) $(LOG_FILE): $(DIFF_FILE) - @$(RM) $@ - @$(call desc_log,$@) @$(call test_log,$(TEST),$^,$@) +$(DETAIL_FILE): $(LOG_FILE) + @$(call report_files,$(LOG_FILE) $(CMD_FILE) $(TEST0_FILE) $(ERR_FILE) $(DIFF_FILE) $(TEST1_FILE),$@) + $(TIME_FILE): $(CMD_FILE) @-$(call time_cmd,$(TEST),$^,$@) -- 2.18.0