From: j8takagi Date: Mon, 13 Dec 2010 00:00:46 +0000 (+0900) Subject: 計時のコマンドとして、GNU TIMEではなく、シェル組み込みのtimeを用いるように変更。移植性を高めるため X-Git-Tag: 0.2p3~44^2~1 X-Git-Url: https://j8takagi.net/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=524c38de2e147a04931c5656641e7b96325870bd;p=autotest_mk.git 計時のコマンドとして、GNU TIMEではなく、シェル組み込みのtimeを用いるように変更。移植性を高めるため --- diff --git a/template/Define.mk b/template/Define.mk index efc1aeb..f9aa85f 100644 --- a/template/Define.mk +++ b/template/Define.mk @@ -27,7 +27,7 @@ RM ?= rm -f ECHO ?= echo -TIME ?= /usr/bin/time --quiet +TIME ?= time DIFF ?= diff -c diff --git a/template/Define_group.mk b/template/Define_group.mk index f3cda2c..a572469 100644 --- a/template/Define_group.mk +++ b/template/Define_group.mk @@ -56,6 +56,7 @@ endef # テストのログファイルをグループログファイルに出力。引数は、テスト、グループログファイル # 用例: $(call group_log_each,file_test_log,file_group_log) define group_log_each + $(ECHO) $(dir $1) >>$2; if test -s $1; then $(CAT) $1 >>$2; else $(ECHO) $(dir $1)": no log" >>$2; fi $(ECHO) >>$2; diff --git a/template/Define_test.mk b/template/Define_test.mk index 78394cb..291e93c 100644 --- a/template/Define_test.mk +++ b/template/Define_test.mk @@ -20,7 +20,7 @@ endef define time_cmd $(call chk_file_notext,$2) $(CHMOD) u+x $2 - $(TIME) -f"$1: %E" -o $3 ./$2 >$(DEV_NULL) 2>&1 + { $(TIME) ./$2 >$(DEV_NULL) 2>&1; } 2>&1 | $(GREP) ^real >>$3 endef # テスト実行コマンド。引数は、コマンドファイル、出力ファイル、エラーファイル @@ -63,7 +63,7 @@ endef # 引数は、対象ファイル群、出力ファイル # 用例: $(call report_files,list_file_target,file_out) define report_files - $(call chk_file_ext,$2) + $(RM) $2 $(foreach tfile,$1,$(call report_file,$(tfile),$2)) endef diff --git a/template/Group.mk b/template/Group.mk index e22d03c..6be7c11 100644 --- a/template/Group.mk +++ b/template/Group.mk @@ -2,14 +2,13 @@ # テストグループのMakefile # # オペレーター -# make : すべてのテストを実施し、ログファイルを作成 -# make check : ↓ -# make create : TESTNAMEで指定されたテストを新規に作成 -# make set : すべてのテストの、想定結果を出力 -# make checkeach: すべてのテストを実施 -# make report : ログファイルから、テストの結果をレポート -# make clean : すべてのテストで、"make" で生成されたファイルをクリア -# make cleanall: すべてのテストで、"make" と "make set" で生成されたファイルをクリア +# make : すべてのテストを実行し、結果をログファイルに出力 +# make check : ↓ +# make checkall : すべてのテストを実行し、結果と実行時間をログファイルに出力 +# make time : すべてのテストを実行し、実行時間をログファイルに出力 +# make create : TESTNAMEで指定されたテストを新規に作成 +# make clean : すべてのテストで、"make" で生成されたファイルをクリア +# make cleantime: すべてのテストで、実行時間のログファイルをクリア SHELL = /bin/sh diff --git a/template/Makefile b/template/Makefile index 5f43798..4c186a4 100644 --- a/template/Makefile +++ b/template/Makefile @@ -2,10 +2,11 @@ # テストグループ作成のMakefile # # オペレーター -# make : テストグループディレクトリーを作成し、Makefile群をコピー -# make creategroup : ↓ -# make creategroupdir: テストグループディレクトリーを作成 -# make copymakefile : Makefile群をコピー +# make : テストグループディレクトリーを作成し、Makefile群をコピー +# make group : ↓ +# make groupdir: テストグループディレクトリーを作成 +# make copymk : Makefile群をコピー +# make linkmk : Makefile群をコピー # 変数やマクロの定義 include Define.mk @@ -13,13 +14,13 @@ include Define.mk # テストグループのMakefileとしてコピーされるファイル GROUP_MAKEFILE := Group.mk -.PHONY: creategroup creategroupdir copymakefiles linkmakefiles +.PHONY: group groupdir copymk linkmk -MKFILE_METHOD = $(if $(LINK),linkmk,copymk) +MKFILE_METHOD = $(if $(LINKMK),linkmk,copymk) -creategroup: creategroupdir $(MKFILE_METHOD) +group: groupdir $(MKFILE_METHOD) -creategroupdir: +groupdir: @$(call err_var_null,GROUPDIR) @$(call err_file_ext,GROUPDIR) @$(MKDIR) $(GROUPDIR) diff --git a/template/Test.mk b/template/Test.mk index edfa278..8294e1e 100644 --- a/template/Test.mk +++ b/template/Test.mk @@ -23,7 +23,7 @@ TEST = $(notdir $(CURRDIR)) check: clean $(DETAIL_FILE) @$(call disp_test_log,$(LOG_FILE)) -checkall: check $(TIME_FILE) +checkall: clean $(DETAIL_FILE) $(TIME_FILE) @$(CAT) $(TIME_FILE) >>$(LOG_FILE) @$(call disp_test_log,$(LOG_FILE))