X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=test%2FTemplate%2FTest.mk;h=e8a3135a86cf10eefe17230d17bb2fbf53a7add3;hb=8d6000bae30f23db3916333a4ff3e74901e68e9d;hp=e6226c1f8ff53a6bab5e42abb02859d3ac258068;hpb=2916ae8c17d00da3baa3dcd0fa4da8178b7c5f30;p=YACASL2.git diff --git a/test/Template/Test.mk b/test/Template/Test.mk index e6226c1..e8a3135 100644 --- a/test/Template/Test.mk +++ b/test/Template/Test.mk @@ -39,14 +39,16 @@ define time_cmd ($(TIME) ./$1 1>$(DEV_NULL) 2>$(DEV_NULL)) 2>&1 | $(GREP) '^real' >$2 endef +VALGRIND_CMD = $(strip $(shell if test -s $(VALGRIND_CMD_FILE); then $(CAT) $(VALGRIND_CMD_FILE); elif test "`$(FILE) $(CMD_FILE)`" = "data"; then $(CAT) $(CMD_FILE); else $(PRINTF) "./$(CMD_FILE)"; fi)) + # valgrindによるメモリーチェック結果を、指定されたファイルに出力して表示 # 引数は、テスト名、コマンドファイル、出力ファイル # 用例: $(call valgrind_cmd,file_cmd,file_out) define valgrind_cmd - -$(VALGRIND) $(VALGRINDFLAG) $(strip $(shell tail -1 $(CMD_FILE))) 1>/dev/null 2>&1 + -$(VALGRIND) $(VALGRINDFLAG) $(VALGRIND_CMD) 1>/dev/null 2>&1 endef -# テスト実行コマンド。 +# テスト実行コマンド # コマンドファイルを実行し、標準出力を指定されたファイルに保存。 # エラー発生時は、エラー出力を出力ファイルとエラーファイルに保存。 # 引数は、コマンドファイル、出力ファイル、エラーファイル @@ -127,7 +129,7 @@ reset: all-clean $(CMD_FILE) @$(CAT) $(TEST0_FILE) clean: - @$(RM) $(TEST_RES_FILES) $(TIME_FILE) $(VALGRIND_FILE) core + @$(RM) $(TEST_RES_FILES) $(TIME_FILE) $(VALGRIND_LOGFILE) $(VALGRIND_CMDLOGFILE) core all-clean: clean @$(RM) $(TEST0_FILE) @@ -138,11 +140,14 @@ time: time-clean $(TIME_FILE) time-clean: @$(RM) $(TIME_FILE) -valgrind: valgrind-clean $(VALGRIND_FILE) - if test -s $(VALGRIND_FILE); then $(ECHO) $(CURDIR) && $(CAT) $(VALGRIND_FILE); else $(RM) $(VALGRIND_FILE); fi +valgrind: valgrind-clean $(VALGRIND_LOGFILE) $(VALGRIND_CMDLOGFILE) + if test -s $(VALGRIND_LOGFILE); then $(ECHO) $(CURDIR) && $(CAT) $(VALGRIND_LOGFILE); else $(RM) $(VALGRIND_LOGFILE); fi + +$(VALGRIND_CMDLOGFILE): $(VALGRIND_LOGFILE) + @$(PRINTF) "$(VALGRIND) $(VALGRINDFLAG) $(VALGRIND_CMD)\n" | $(CAT) - $(VALGRIND_LOGFILE) >$(VALGRIND_CMDLOGFILE) valgrind-clean: - @$(RM) $(VALGRIND_FILE) + @$(RM) $(VALGRIND_LOGFILE) $(TEST1_FILE): $(CMD_FILE) @-$(call exec_cmd,$^,$@,$(ERR_FILE)) @@ -159,5 +164,5 @@ $(DETAIL_FILE): $(LOG_FILE) $(TIME_FILE): $(CMD_FILE) @$(call time_cmd,$^,$@) -$(VALGRIND_FILE): $(CMD_FILE) +$(VALGRIND_LOGFILE): $(CMD_FILE) $(call valgrind_cmd,$^,$@)