# テストのテンプレート
# 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
+UNITNAME = `pwd | xargs basename`
+# 要定義: CMD, CMDFILE, OBJFILE
-.PHPNY: all check prepare clean cleanall logadd
-check: clean logadd
-all: check
+.PHPNY: check prepare clean cleanall
+check: clean report.txt
prepare: cleanall 0.txt
clean:
- @rm -f 1.txt diff.txt report.txt
+ @rm -f 1.txt diff.txt report.txt err.txt
cleanall: clean
@rm -f 0.txt
0.txt 1.txt: $(CMDFILE) $(OBJFILE)
- @$(CMD) >$@ 2>$(ERRFILE); \
+ @echo $(CMD) >$@; \
+ $(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
+ @-diff -c 0.txt 1.txt >$@ 2>&1
report.txt: diff.txt
- $(report)
-logadd: report.txt
- @cat $^ >>$(LOGFILE)
+ @echo -n "$(UNITNAME): Test " >$@; \
+ if test ! -s $^; then echo -n "Success " >>$@; rm -f $^; else echo -n "Failure " >>$@; fi; \
+ echo `date +"%F %T"` >>$@