データ構造の名前を変更
[YACASL2.git] / doc / casl2lib / Test.mk
1 # autotest.mk > test_template > Test.mk
2 # 自動テスト用のMakefile
3 #
4 # 要: Define.mk Define_test.mk
5 #
6 # オペレーター
7 # make         : CMDの標準出力をTEST1_FILEに保存したあと、TEST0_FILEとの差分を比較し、結果をLOG_FILEに出力
8 # make check   : ↓
9 # make set     : CMDの標準出力をTEST0_FILEに保存。TEST0_FILEが存在する場合は実行しない
10 # make reset   : CMDの標準出力をTEST0_FILEに保存。TEST0_FILEが存在する場合は上書き
11 # make time    : CMDの実行にかかった時間をTIME_FILEに保存し、出力
12 # make cleantime: "make time" で作成されたファイルをクリア
13 # make clean   : "make" で作成されたファイルをクリア
14 # make cleanall: "make" と "make set" で作成されたファイルをクリア
15
16 SHELL = /bin/sh
17
18 # テスト名。カレントディレクトリー名から取得
19 TEST = $(notdir $(CURRDIR))
20
21 .PHONY: check set reset time cleantime clean cleanall
22
23 check: clean $(DETAIL_FILE)
24         @$(call disp_test_log,$(LOG_FILE))
25
26 checkall: check $(TIME_FILE)
27         @$(CAT) $(TIME_FILE) >>$(LOG_FILE)
28         @$(call disp_test_log,$(LOG_FILE))
29
30 set: $(TEST0_FILE)
31         @$(CAT) $^
32
33 reset: cleanall $(TEST0_FILE)
34         @$(CAT) $(TEST0_FILE)
35
36 time: cleantime $(TIME_FILE)
37
38 cleantime:
39         @$(RM) $(TIME_FILE)
40
41 clean:
42         @$(RM) $(TEST_RES_FILES)
43
44 cleanall: clean
45         @$(RM) $(TEST0_FILE)
46
47 $(CMD_FILE):
48         @$(call chk_file_notext,$@)
49         @$(CHMOD) u+x $@
50
51 $(TEST0_FILE) $(TEST1_FILE): $(CMD_FILE)
52         @-$(call exec_cmd,$^,$@,$(ERR_FILE))
53
54 $(DIFF_FILE): $(TEST0_FILE) $(TEST1_FILE)
55         @$(call chk_file_notext,$(TEST0_FILE))
56         @-$(call diff_files,$^,$@)
57
58 $(LOG_FILE): $(DIFF_FILE)
59         @$(call test_log,$(TEST),$^,$@)
60
61 $(DETAIL_FILE): $(LOG_FILE)
62         @$(call report_files,$(LOG_FILE) $(CMD_FILE) $(TEST0_FILE) $(ERR_FILE) $(DIFF_FILE) $(TEST1_FILE),$@)
63
64 $(TIME_FILE): $(CMD_FILE)
65         @-$(call time_cmd,$(TEST),$^,$@)