ECHO ?= echo
-TIME ?= /usr/bin/time --quiet
+TIME ?= time
DIFF ?= diff -c
# テストのログファイルをグループログファイルに出力。引数は、テスト、グループログファイル
# 用例: $(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;
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
# テスト実行コマンド。引数は、コマンドファイル、出力ファイル、エラーファイル
# 引数は、対象ファイル群、出力ファイル
# 用例: $(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
# テストグループの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
# テストグループ作成の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
# テストグループの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)
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))