計時のコマンドとして、GNU TIMEではなく、シェル組み込みのtimeを用いるように変更。移植性を高めるため
authorj8takagi <j8takagi@nifty.com>
Mon, 13 Dec 2010 00:00:46 +0000 (09:00 +0900)
committerj8takagi <j8takagi@nifty.com>
Mon, 13 Dec 2010 00:00:46 +0000 (09:00 +0900)
template/Define.mk
template/Define_group.mk
template/Define_test.mk
template/Group.mk
template/Makefile
template/Test.mk

index efc1aeb..f9aa85f 100644 (file)
@@ -27,7 +27,7 @@ RM ?= rm -f
 
 ECHO ?= echo
 
-TIME ?= /usr/bin/time --quiet
+TIME ?= time
 
 DIFF ?= diff -c
 
index f3cda2c..a572469 100644 (file)
@@ -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;
 
index 78394cb..291e93c 100644 (file)
@@ -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
 
index e22d03c..6be7c11 100644 (file)
@@ -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
 
index 5f43798..4c186a4 100644 (file)
@@ -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)
index edfa278..8294e1e 100644 (file)
@@ -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))