12299d7cc0f61bf5ea6b4b0fe282b5e57ff825f3
[YACASL2.git] / test / TEST.mk
1 # テストのテンプレート
2 # make         : CMDで設定されたコマンドを実行した出力結果を1.txtに出力し、0.txtと比較し、レポート
3 # make all     : ↓
4 # make check   : ↓
5 # make prepare : CMDで設定されたコマンドを実行した出力結果を0.txt(テストの想定結果)に出力
6 # make clean   : 「make」で生成されたファイルをクリア
7 # make cleanall: 「make」と「make clean」で生成されたファイルをクリア
8 LOGFILE = ../test.log
9 ERRFILE = err.txt
10 CURDIR = `pwd`
11 define report
12   @echo -n "`basename $$PWD`: Test " >$@
13   @if test ! -s $^; then \
14     echo -n "Success " >>$@; \
15     rm -f $^; \
16   else \
17     echo -n "Failure " >>$@; \
18   fi
19   @echo `date +"%F %T"` >>$@
20 endef
21
22 .PHPNY: all check prepare clean cleanall logadd
23 check: clean logadd
24 all: check
25 prepare: cleanall 0.txt
26 clean:
27         @rm -f 1.txt diff.txt report.txt
28 cleanall: clean
29         @rm -f 0.txt
30 0.txt 1.txt: $(CMDFILE) $(OBJFILE)
31         @$(CMD) >$@ 2>$(ERRFILE); \
32      if test -s $(ERRFILE); then cat err.txt >>$@; else rm -f $(ERRFILE); fi
33 diff.txt: 1.txt
34         @-diff 0.txt 1.txt >$@ 2>&1
35 report.txt: diff.txt
36         $(report)
37 logadd: report.txt
38         @cat $^ >>$(LOGFILE)