X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=test%2FTEST.mk;h=dc64dcbc6fce0d52b4a139ebf157fbba6c4bb2c6;hp=12299d7cc0f61bf5ea6b4b0fe282b5e57ff825f3;hb=62946aa7fff13af98f6e07ed45d2a2330bc18a7d;hpb=fb54b1c9d2fbc3d4a62c6b4d38ff68e9d3b25c26 diff --git a/test/TEST.mk b/test/TEST.mk index 12299d7..dc64dcb 100644 --- a/test/TEST.mk +++ b/test/TEST.mk @@ -1,38 +1,33 @@ # テストのテンプレート +# 次の変数を定義する +# CMD: 実行するコマンド +# MAINTARGET_OVERRIDE: メインターゲットを独自に定義し、オーバーライドする # make : CMDで設定されたコマンドを実行した出力結果を1.txtに出力し、0.txtと比較し、レポート -# make all : ↓ # make check : ↓ # make prepare : CMDで設定されたコマンドを実行した出力結果を0.txt(テストの想定結果)に出力 # make clean : 「make」で生成されたファイルをクリア -# make cleanall: 「make」と「make clean」で生成されたファイルをクリア -LOGFILE = ../test.log -ERRFILE = err.txt -CURDIR = `pwd` -define report - @echo -n "`basename $$PWD`: Test " >$@ - @if test ! -s $^; then \ - echo -n "Success " >>$@; \ - rm -f $^; \ - else \ - echo -n "Failure " >>$@; \ - fi - @echo `date +"%F %T"` >>$@ -endef - -.PHPNY: all check prepare clean cleanall logadd -check: clean logadd -all: check -prepare: cleanall 0.txt +# make cleanall: 「make」と「make prepare」で生成されたファイルをクリア +UNITNAME = `pwd | xargs basename` +DATE = `date +"%F %T"` +ERR_FILE = err.txt +DIFF_FILE = diff.txt +REPORT_FILE = report.txt +TEST0_FILE = 0.txt +TEST1_FILE = 1.txt +.PHPNY: check prepare clean cleanall +check: clean $(REPORT_FILE) +prepare: cleanall $(TEST0_FILE) clean: - @rm -f 1.txt diff.txt report.txt + @rm -f $(TEST1_FILE) $(DIFF_FILE) $(REPORT_FILE) $(ERR_FILE) cleanall: clean - @rm -f 0.txt -0.txt 1.txt: $(CMDFILE) $(OBJFILE) - @$(CMD) >$@ 2>$(ERRFILE); \ - if test -s $(ERRFILE); then cat err.txt >>$@; else rm -f $(ERRFILE); fi -diff.txt: 1.txt - @-diff 0.txt 1.txt >$@ 2>&1 -report.txt: diff.txt - $(report) -logadd: report.txt - @cat $^ >>$(LOGFILE) + @rm -f $(TEST0_FILE) +ifndef MAINTARGET_OVERRIDE +$(TEST0_FILE) $(TEST1_FILE): + @echo $(CMD) >$@; \ + $(CMD) >>$@ 2>$(ERR_FILE); \ + if test -s $(ERR_FILE); then cat $(ERR_FILE) >>$@; else rm -f $(ERR_FILE); fi +endif +$(DIFF_FILE): $(TEST1_FILE) + @-diff -c $(TEST0_FILE) $(TEST1_FILE) >$@ 2>&1 +$(REPORT_FILE): $(DIFF_FILE) + @if test ! -s $^; then echo "$(UNITNAME): Test Success $(DATE)" >>$@; rm -f $^; else echo "$(UNITNAME): Test Failure $(DATE)" >>$@; fi;